数据映射器模式的数据一致性

时间:2011-05-19 21:47:30

标签: java oracle jsf triggers

我正在开发一个用于安排后勤分发的Web应用程序。我使用Java,JSF 2.0和Oracle-XE作为数据库。 在Oracle-XE中,我实现了序列和触发器来自动增加某些属性的ID。 我的问题是,如果我执行应用程序以添加新客户,那么我需要从数据库中检索增加的ID,然后将其保存在我的客户对象中。还有另一种方法可以直接从数据库中获取递增的ID吗?我不喜欢从数据库中选择ID的解决方案。

由于

1 个答案:

答案 0 :(得分:2)

如果您通过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绑定变量。