用上面的hibernate模板方法执行删除操作,会有问题
例如:你不想更新一张表中的某条数据,可以采取先删除这条数据,然后再插入新数据。
如果这张表中主键是复合主键,你插入的数据和要删除的数据主键一样,只有其他字段有更改。
那么使用getHibernateTemplate().bulkUpdate()执行删除的hql语句,再用getHibernateTemplate().save()执行插入,会产生不同步的问题。在事物提交的时候,getHibernateTemplate().bulkUpdate()才会起效,getHibernateTemplate().save()时总是会提示数据冲突!!!
使用查询出对象,删除对象,插入新对象不会出错,但是这样麻烦,访问数据库频繁
采用getHibernateTemplate().execute(new HibernateCallback(){});方法执行删除不会出现冲突
例如:你不想更新一张表中的某条数据,可以采取先删除这条数据,然后再插入新数据。
如果这张表中主键是复合主键,你插入的数据和要删除的数据主键一样,只有其他字段有更改。
那么使用getHibernateTemplate().bulkUpdate()执行删除的hql语句,再用getHibernateTemplate().save()执行插入,会产生不同步的问题。在事物提交的时候,getHibernateTemplate().bulkUpdate()才会起效,getHibernateTemplate().save()时总是会提示数据冲突!!!
使用查询出对象,删除对象,插入新对象不会出错,但是这样麻烦,访问数据库频繁
采用getHibernateTemplate().execute(new HibernateCallback(){});方法执行删除不会出现冲突