我使用Glassfish 2和容器管理持久性与Hibernate 3.2作为持久性提供程序。我的业务逻辑中有一些finder方法,它操纵一些持久性实体,这些实体已经通过EntityManager
获取。操作只是更改String
属性(从集合中删除元素会产生相同的效果)
我不会在我的EntityManager
上调用 save 或 persist 之类的内容。我只想将一些已更改的实体返回给我的客户。
似乎当容器提交事务时,我的实体的更改会自动保存。到目前为止,我是否完全错过了一些神奇的Hibernate或Glassfish行为?
答案 0 :(得分:4)
如果您获取的实体处于Managed
状态,那么在交易结束时,对该实体所做的更改将被保留。这是JPA提供商必须遵守的合同。
这个问题可能对您有所帮助:Transactional saves without calling update method