【发布时间】:2018-10-24 03:33:33
【问题描述】:
我创建了 2 个实体。 现在,当我在后端检索我的实体时,我验证了一些事情,但是当我的后端将这些实体返回到我的前端时,休眠尝试自动更新数据库。
我实际上并没有在后端代码中运行任何更新(我认为这是因为我在执行逻辑时更改了实体中的一些数据并删除了一些应该返回到前端的属性)。
如何告诉休眠在我明确运行 .save 或 .update 之前不要更新任何内容?
【问题讨论】:
-
这是 hibernate 或任何其他 orm 的主要功能之一,请阅读有关 hibernate 缓存或持久性上下文的信息。简短的回答:您对从 Db 检索的实体所做的任何更改都会在事务结束时反映到 Db。是的,有多种方法可以避免它。
-
喜欢清除缓存或选择投影而不是实体。或者干脆避免对您的“托管”实体进行更改
-
我会试试
@Transactional(readOnly=true)。 -
@Zeromus 当我从我的数据库自动分离返回任何东西时,有可能吗? @Transactional(readOnly=true) 不起作用
标签: hibernate spring-boot jpa