Hibernate3.1 ----saveorUpdate的再次疑问!
最近用Struts1.1+Hibernate3.1进行程序设计,遇到了如下问题
ID生成策略采用 generator type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator />
</id>
Project project = new Project();
project.setId(XXX);
this.projectDao.saveOrUpdate(project);
1、默认unsaved-value="null"
这时有所不同,hibernate会根据主键产生一个select,来判断此对象是否已被持久化
已被持久化则update,未被持久化则save。
————————————————----
也就是说,采用ID手动赋值,使用saveOrUpdate的时候hibernate会根据主键产生一个select,来判断此对象是否已被持久化已被持久化则update,未被持久化则save。
!但是我试了多次,不是这么回事啊,如果我给ID赋值,saveOrUpdate总是发出Update的语句,到底怎么回事??他说的时否正确,我目前程序就遇到这里,希望能够给解释一下
<column name="id" length="32" />
<generator
column="timestamp" unsaved-value="null" source="vm" access="property">
</timestamp> 2 楼 kainsas 2007-03-22 记住数据库中该字段设为非空!切忌,我的就是,在没设为非空的时候不起作用,并没有自动向该字段添值