【发布时间】:2013-06-16 07:38:58
【问题描述】:
我如何知道 Hibernate 是否在运行getHibernateTemplate().saveOrUpdate(object); 之后进行了插入或更新,该方法无效!
saveOrUpdate() 执行以下操作:
- 如果对象已在此会话中持久存在,则不执行任何操作
- 如果与会话关联的另一个对象具有相同的标识符,则抛出异常
- 如果对象没有标识符属性,则保存()它
- 如果对象的标识符具有分配给新实例化对象的值,则保存()它
- 如果对象由 or 版本化,并且版本属性值与分配给新实例化对象的值相同,则 save() 它
- 否则更新()对象
恐怕在运行此方法之前,我总是必须检查对象是否已经有一个“主键/ID”,这是唯一的方法吗?如果是,我怎样才能得到通用方式的主键/ID?
Serializable id = session.getIdentifier(entity); 或 Object id = entityManagerFactory.getPersistenceUnitUtil().getIdentifier(entity); ??
【问题讨论】:
标签: hibernate