如何防止Hibernate使用0作为ID?

Bri*_*son 5 java jboss hibernate jpa generator

我在用

@TableGenerator(name="tab",initialValue=2,allocationSize=50)
Run Code Online (Sandbox Code Playgroud)

on Entities并定义ID

@Id
@GeneratedValue(generator="tab",strategy=GenerationType.TABLE)
private int id;
Run Code Online (Sandbox Code Playgroud)

但Hibernate仍然使用0作为ID.

我不能使用@GenericGenerator,因为Jboss AS7附带的Hibernate4没有附带注释.

有一个简单的解决方案还是我必须编写自定义生成器?

Man*_*uPK 4

Hibernate 正在使用 id 创建 ids,0因为您有一个原始类型。尝试使用Integer id而不是int id. 请记住,基元不能包含空值。

如果要生成自定义 id 生成器,可以使用SEQUENCEDB 中的对象来生成 id。

<id ....>
        <generator class="sequence">
           <param name="sequence">YOUR_SEQUENCE _NAME</param>
       </generator>
</id>
Run Code Online (Sandbox Code Playgroud)

请在此处阅读有关生成器类的 API 。