我有一个列的 hbm 映射,它设置为身份生成器
<class name="com.dummy.TestADTO" table="table_a">
<id name="id" type="integer" column="ID">
<generator class="identity"/>
</id>
...
</class>
其中一半已经与我定义的 db2 键表列一起使用
ID NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE)
我的 dto 如下所示:
package com.dummy;
class TestADTO {
private Integer id;
public Integer getId(){ return id; }
public void setId(Integer id) { this.id = id; }
}
- “一半”的意思是,我可以为 id 属性设置一个空值,并且当调用 hibernate session.merge(testadto) 时,生成器会设置 ID 列:
insert into test_a(id) values (default);
- 另一半不起作用的是,我可以为 TestADTO.id=155 设置一个值,但是当 hibernate 使用 session.merge(testadto) 插入到 db 时,不使用该值。而是使用来自身份生成器的下一个值:
我想要的是:
insert into test_a(id) values (?);
(其中 ? 将被 155 替换)
我得到了什么:
insert into test_a(id) values (default);
我怎样才能让它工作?