我对 JDeveloper 和 Oracle ADF 还很陌生。在我的用例中,我的实体所基于的表有一个不自动递增的主键。 (DB2)。要求 DBA 自动增量目前不是一个选择。或者就此而言,向 DBA 询问几乎任何事情。由于表 PK 中没有序列定义,我无法使用简洁的 Groovy 表达式来自动递增。这是我尝试过的:- a) 在 View 对象中创建一个名为 idGenerate 的 transient 属性,并使用查找 pk 列的最大值的 SQL 查询填充它。 b) 尝试使用表达式 idGenerate+1 填充 ViewObject id Persistent 字段。
这会导致空指针异常,因为 idGenerate 最终为空。 :(。有没有办法在不借助 EJB 的情况下执行此操作?说实话,编写 EJB 类来执行此操作似乎完全是多余的。
最佳答案
我认为这不会起作用 - 属性的值设置得太晚(通过查询)而无法在 groovy 表达式中使用。 当我遇到类似的问题时,我只是扩展了 EO 并编写了自定义 Java 来获取 idGenerate 值并在属性的 Getter 方法中递增它。我会从那里开始。
关于java - 在 Oracle ADF 12.1.3 中从 transient 属性填充持久属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26518683/