使用 Spring 数据 JPA 并读取它Hibernate first level cache is missing,答案是“ Hibernate 默认情况下不缓存查询和查询结果。唯一使用一级缓存的是当你调用 EntityManger.find() 你会看不到 SQL 查询正在执行。如果实体已经在加载,则使用缓存来避免创建对象。 ”
- 因此,如果如果不是通过其 Id 而是其他条件获取实体,如果我更新某些属性,我不应该在事务方法中看到更新 sql,因为它没有存储在第一级缓存中,对吗?
- 根据上面的答案,如果我得到一些实体列表,无论我使用什么标准来查找它们,它们都不会存储在一级缓存中,对吧?
- 当一个 Transactional(propagation= Propagation.NEVER) 方法通过它的 id 加载同一个实体两次时,不应该假设它会两次访问数据库,因为每次加载都将在它自己的“事务”中运行并且会有自己的持久上下文?在这种情况下,预期的行为是什么?
谢谢