gpt4 book ai didi

java - Hibernate:evict()一个持久对象,同时存储其更改

转载 作者:太空狗 更新时间:2023-10-29 22:45:49 26 4
gpt4 key购买 nike

我有一个使用 session.save(object) 获得的持久性 hibernate 对象

从那以后我改变了它。

我想执行 session.evict(object) 以节省内存,因为我已完成对对象的处理。

evict() 的文档 here声明对对象的更改不会被持久化。换句话说 - 逐出会导致我丢失我对对象所做的更改。

我可以调用 session.flush() 但这会刷新所有更改。

如何在逐出之前持久化对单个持久对象所做的更改?

最佳答案

调用 session.save(object)session.saveOrUpdate(object),然后如果需要,您可以对其调用 evict。但是,您必须在执行此操作之前刷新 session 。 session 被设计为基于工作单元的接口(interface),这是有充分理由的——如果没有这个特性,事务语义将是一场灾难。如果您需要刷新单个实体而不刷新属于同一 session 的其他实体,则需要重新考虑您的工作单元。

关于java - Hibernate:evict()一个持久对象,同时存储其更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6836326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com