我都抑郁了. 在调用getHibernateTemplate().update(obj);方法的时候报的异常 baidu到的说是因为更新的时候带了数据库自增长字段, 但是控制台打出来的sql语句 拿到数据库直接运行是没问题的。
<class name="Mail" table="mails" dynamic-insert="true" dynamic-update="true">
<id name="id">
<generator class="native" />
</id>
<property name="owner" />
<property name="recipient" />
<property name="subject" />
<property name="sender" />
<property name="filepath" />
<property name="date" />
<property name="content" />
<property name="folderType" />
</class>
------解决思路----------------------
这个异常是由于主键设置为自增长,而在我们插入记录的时候设置了ID的值导致的。
你排查一下哪里有设置了id
1.我是在做One-To-One级联 添加/更新 碰到的,开始还以为是我配置错误,后面经过仔细排查,发现是我在页面上写了子表ID的隐藏表单域,传到后面的时候value="" ,不是value=null,所以执行的时候hibernate判断为更新,所以报错了。我的解决方案是把ID单独传到后台,然后用代码判断是否为空,然后进行更新或者增加。
好好排查一下
摘自http://abe.iteye.com/blog/998344