我正在制定一项要求,我们需要使用每个实体的序列。
现在我创建了一个包含列和值的表hibernate_sequence
,如下所示:
next_value | sequence_name
-----------|--------------
100000045 |
100050000 | ACCOUNT_SEQ
以下是我的hbm.xml
实体ACCOUNT
文件:
<generator class="org.hibernate.id.enhanced.SequenceStyleGenerator">
<param name="prefer_sequence_per_entity">true</param>
<param name="optimizer">none</param>
<param name="increment_size">1</param>
</generator>
但不知何故,我的插入使用全局序列id而不是使用为ACCOUNT定义的序列。有人可以指出我在这里做错了吗?
我确实引用了Steve answer for this question,但是hibernate文档并不清楚如何使用此功能。我们是否应该为每个实体(或)相同的表创建一个单独的表,每个实体具有不同的行,并且语法定义明确?
答案 0 :(得分:3)
'prefer_sequence_per_entity'(参见https://hibernate.atlassian.net/browse/HHH-6790)。上面你澄清说你使用的是4.0。您需要升级才能使用它,或复制4.1.3版本的SequenceStyleGenerator