0

假设我想更新A引用B但是B一个大实体的实体。

如果B不是缓存实体(第二级),我通常会执行getReference()if 我有权访问B的 PK 以避免额外的SELECT查询。

现在如果B被缓存(第二级),会getReference()find()相同吗?

4

1 回答 1

0

如果相同的意思是两者都将返回相同的对象,那么不会。find将进入二级缓存并返回该对象,而getReference将返回一级缓存的对象,即持久性上下文,如果不存在,则返回代理。只有在初始化代理时,它才会尝试从二级缓存中查找数据。

于 2021-08-26T10:50:06.780 回答