这个问题特定于持久化上下文(L1)中的缓存,而不是二级缓存。
我想知道为什么在使用JPQL选择/重新加载实体时不会刷新Persistent上下文缓存中的实体。
使用示例解释问题:
我在日志中验证了查询被触发了。那为什么实体A没有刷新?
答案 0 :(得分:1)
这是第一级缓存的工作方式。当OpenJPA读取查询的结果集时,它会检查结果集行的id字段。如果具有该id的实体已存在于持久性上下文中,则使用现有实体,并忽略结果集行的其余部分,这意味着实体不会再次组合。
如果您想强制重新加载实体实例,您可以: