java访问创建Hibernate映射对象的事务内部的对象
我希望能够访问创建它的事务中的Hibernate
映射对象,以便对其进行克隆。我之所以想通过Hibernate Session
克隆它,而不仅仅是使用对象,这是有原因的。克隆()(说来话长…)
Transaction tran = session.beginTransaction();
Gadget gadg = new Gadget(1 /* id */, "Gadget Name", "some label", 123);
session.save(gadg);
//this returns null
Gadget gadgClone = (Gadget)session.get(Gadget.class, gadg.getId());
//do something with the clone
tran.commit();
但是,gadgClone
为空。是因为它还没有被实施吗?在提交之前,有没有办法在session
中访问它
# 1 楼答案
为什么不在持久化对象之前克隆它? 为什么在取消持久化后要克隆它
无论如何,您是否尝试过从缓存加载对象?出于性能原因,如果对象驻留在缓存中,则不需要访问数据库
此外,您可能需要在提交事务之前初始化对象(可能还有其字段)