getHibernateTemplate.save() - 如何获取受影响的行/新的自动增量
Posted
技术标签:
【中文标题】getHibernateTemplate.save() - 如何获取受影响的行/新的自动增量【英文标题】:getHibernateTemplate.save() - How get Affected rows / New Auto increment 【发布时间】:2011-02-01 06:36:22 【问题描述】:有没有办法让我通过以下方式取回受影响的行数:
getHibernateTemplate().save(bean);
如果你不知道最后发生了什么,使用保存有什么意义。 或者,如果我插入一个新行,我想获取创建的新 PK AI....
有什么想法吗?
感谢
【问题讨论】:
【参考方案1】:有没有办法让我通过以下方式取回受影响的行数:
不用于“保存”操作,这是可以理解的。但如果您使用的是Query
,executeUpdate
方法会返回受影响的记录数。
如果你不知道最后发生了什么,使用保存有什么意义。
好吧,如果没有例外,您可以假设一切都按预期进行。
或者,如果我插入一个新行,我想获取新创建的 PK AI....
Hibernate 使用生成的 PK 更新持久化 bean。所以,如果你的 bean 有一个long id
,设置为自动增量,Hibernate 将在它被持久化后填充这个字段。
【讨论】:
如果我理解正确,我不应该使用 getHibernateTemplate,因为它无法让你知道你的请求是怎么回事。以上是关于getHibernateTemplate.save() - 如何获取受影响的行/新的自动增量的主要内容,如果未能解决你的问题,请参考以下文章
getHibernateTemplate().save(t)执行不成功,数据不能插入到数据库
添加了Spring声明式事务 然后hibernate多次调用save(),却只保存了最后一条记录到数据库,请高手指点
求对hibernate源码了解的大神!关于hibernate4及以上版本---不配置事务,dao类继承自HibernateDaoSupport