我是JDeveloper和Oracle ADF的新手。在我的用例中,我的实体所基于的表具有一个不自动递增的主键。 (DB2)。要求DBA自动增加它现在不是一个选择。或者问DBA几乎任何事情。由于表PK中没有Sequence定义,我无法使用整洁的小Groovy Expression来自动增加。这是我尝试过的: - a)在视图对象中创建一个名为idGenerated的瞬态属性,并使用SQL查询填充该查询,该查询查找pk列的最大值。 b)尝试使用以下表达式填充ViewObject id Persistent字段:idGenerated + 1.
这会导致空指针异常,因为idGenerated最终为null。 :(。有没有办法在不诉诸EJB的情况下执行此操作?说实话,编写EJB类来执行此操作似乎是完全矫枉过正。
答案 0 :(得分:2)
我认为这不会起作用 - 属性的值设置太晚(通过查询)以便在groovy表达式中使用。 当我遇到类似的问题时,我只是扩展了EO并编写了自定义Java以获取idGenerated值并在属性的Getter方法中增加它。我会从那里开始。
答案 1 :(得分:1)
我的建议是:在实体对象中添加transient属性,然后将其添加到实体对象的View Object属性中。这在大多数时候帮助了我。
答案 2 :(得分:0)