从表中刷新数据而不在adf 12c中重建项目

问题描述 投票:0回答:2

我在adf 12c中创建了一个融合Web应用程序并使用12c数据库。构建我的应用程序后,我不小心删除了表中的一些行,但没有按下提交按钮。删除的行不会显示在那里但存在于数据库中(刷新后检查)。我想在页面刷新/重新加载或通过一些命令按钮刷新数据库中的数据。如何在不重建我的应用程序的情况下做到这一点。

oracle12c oracle-adf jdeveloper adfs2.0 oracle-fusion-middleware
2个回答
0
投票

以下是如何在ADF表上实现回滚?

  • 转到Datacontrols面板
  • 打开绑定RichTable的View对象所在的应用程序模块
  • 转到“操作”文件夹
  • 将回滚操作作为ADF命令按钮拖放到JSF页面

它看起来像这样:

 <af:commandButton actionListener="#{bindings.Rollback.execute}" text="Rollback" disabled="#{!bindings.Rollback.enabled}" immediate="true" id="cb6">

你也可以用Java做到这一点:

 appModule.getTransaction.rollback();

此回滚操作将取消对应用程序模块所做的所有修改,并再次查询数据库以查找其所有View对象。

在这里阅读更多:https://docs.oracle.com/cd/B14099_19/web.1012/b14022/oracle/jbo/ApplicationModule.html

交易

与根应用程序模块关联的是Transaction对象,它提供此事务上下文。从任何(根或嵌套)应用程序模块,用户可以通过调用getTransaction()来检索事务对象。实际上,getTransaction()首先找到根应用程序模块,然后从中返回事务对象。

Transaction对象管理与数据库和实体缓存的连接。因此,只要这些视图对象全部由一个根应用程序模块作为父对象,通过一个视图对象所做的更改对其他视图对象是可见的。相反,如果两个视图对象由两个单独的根应用程序模块作为父级,则第二个视图对象将无法看到通过视图对象所做的更改,直到通过第一个根应用程序模块将更改提交到数据库并且第二个VO执行查询(从数据库中检索最新数据)。


0
投票

您需要为View对象选择executeQuery操作,该操作填充表并将其作为按钮放在页面上。按下按钮将重新查询您的数据库以从那里获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.