但一般做法都是用trigger来调sequence插入ID, 这种方法即安全又灵活,
不知OracleDialect怎样处理这种情况
看看源码就清楚了~~~
你就算用trigger来读sequence生成主键字段,Hibernate还是要多调用一次SQL:select id from ...;
来获取id字段值构造主键类对象返回。
而不用trigger,也有一次SQL:select nextval from sequ来创建主键类
反正都得用两条SQL,区别也不大,你用trigger,对于Hibernate来说,反而更加麻烦,还需要用户去写trigger,索性不用。
trigger和returing结合是oracle的推荐方法
Insert into table_a
(value1, value2)
Select value1, value2
From table_b
Returning table_a_id
into :table_a_local;
猜你喜欢
本站原创《复杂软件设计之道:领域驱动设计全面解析与实战》