如何在 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 业务组件 > 包。
我想通过 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 业务组件 > 包。