我有使用获取的持久性hibernate对象 session.save(object)
session.save(object)
从那以后我改变了它。
我想执行session.evict(object)以节省内存,因为我已经完成了该对象。
session.evict(object)
evict() 此处的文档指出,该对象的更改将不会保留。换句话说- 逐出会使我丢失对对象所做的更改。
evict()
我可以打电话,session.flush()但是那会清空所有更改。
session.flush()
在逐出之前,如何保持对单个持久对象所做的更改?
呼叫session.save(object)或session.saveOrUpdate(object),然后您可以根据需要呼叫evict。但是,您必须先刷新会话,然后再执行此操作。出于充分的原因,该会话被设计为基于工作单元的界面- 如果没有此功能,事务性语义将是一场灾难。如果您需要刷新单个实体而不刷新同一会话中的其他实体,则需要重新考虑工作单元。
session.saveOrUpdate(object)