与数据映射程序模式的数据一致性
问题描述:
我正在开发一个用于安排物流分配的Web应用程序。我使用Java,JSF 2.0和Oracle-XE作为数据库。 在Oracle-XE中,我实现了序列和触发器来自动递增某些属性的ID。 我的问题是,如果我执行应用程序来添加新客户,那么我需要从数据库中检索增加的ID并将其保存在我的客户对象中。是否有另一种方法直接从数据库中获取增加的ID?我不喜欢解决方法,从数据库中选择ID。与数据映射程序模式的数据一致性
感谢
答
如果直接发行对通过JDBC数据库的SQL(如果您使用的是对象关系映射层,该API可能支持类似的东西),你可以在INSERT期间使用returning子句。喜欢的东西
INSERT INTO table_name(column1, column2, ... , columnN)
VALUES(:1, :2, ... , :N)
RETURNING key_column INTO :new_key
将返回触发器填充为KEY_COLUMN
列到:new_key
绑定变量的值。
是否可以将RETURNED键分配给一个变量,例如整数? – djihad 2011-05-19 23:10:10