我正在使用
@TableGenerator(name="tab",initialValue=2,allocationSize=50)
on Entities并使用
定义ID@Id
@GeneratedValue(generator="tab",strategy=GenerationType.TABLE)
private int id;
但Hibernate仍然使用0作为ID。
我不能使用@GenericGenerator,因为Jboss AS7附带的Hibernate4没有附带注释。
是否有简单的解决方案,还是我必须编写自定义生成器?
答案 0 :(得分:3)
Hibernate正在创建id为0
的id,因为你有一个原始类型。尝试使用Integer id
代替int id
。记住原语不能保持空值。
如果要生成自定义ID生成器,可以使用DB中的SEQUENCE
生成对象的id。
<id ....>
<generator class="sequence">
<param name="sequence">YOUR_SEQUENCE _NAME</param>
</generator>
</id>
阅读有关生成器类here的API。