与数据映射程序模式的数据一致性

问题描述:

我正在开发一个用于安排物流分配的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绑定变量的值。

+0

是否可以将RETURNED键分配给一个变量,例如整数? – djihad 2011-05-19 23:10:10