如何在 Oracle adf 中通过 SQL 设置 entity/view 对象属性的默认值?

How to set default value of entity/view object's attribute via SQL in Oracle adf?

我想通过 sql 查询在视图对象中设置 ID 属性的默认值,即:

SELECT (MAX(DEPTID) + 1) 
FROM DEPARTMENT;

这样我就可以将它用作 oracle-adf 中的自动增量功能。我也通过 java 为它使用了序列,但它不满足我的要求。我自己也尝试了 SQL 方法,但是当我部署表单时,页面返回空白,当我 运行 app-module 时,它​​也不起作用。

我在 JDeveloper 12.2.1.3(当前产品)上测试了这个确切的设置,它工作正常。 BC 测试器和渲染页面都显示递增的最大部门 ID。

但是,如果我将属性类型设置为 BigDecimal,如果我选择 BigInteger,则 "Transient Type" 设置为 "Number"。我注意到在您的屏幕截图中,它显示的类型为“$none$”——也许这就是问题所在?

另外,如果你是按整数递增,为什么选择 BigDecimal 作为类型?不应该是整数还是大整数?

此外,如果您不知道 - 建议将 EO、VO、链接、Assoc 等放入单独的包中,以便于阅读等。转到“工具”>“首选项”> ADF 业务组件 > 包。