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