在缓存中获取EclipseLink JPA query.getResultList()结果的正确原因是什么?

在缓存中获取EclipseLink JPA query.getResultList()结果的正确原因是什么?,jpa,eclipselink,Jpa,Eclipselink,当我使用EclipseLink JPA query.getResultList()时,它不会将结果存储在缓存中,因此当我调用merge时,第一个调用会对每个对象执行全选然后更新 在缓存中获取查询结果的正确方法是什么 我想先进行查询,然后为每个结果调用EntityManager find,但这似乎是错误的。显然我不能先调用find,因为我不知道对象id 基本上,我希望将所有数据缓存在内存中(缓存中),并尽可能快地进行更新 谢谢默认情况下,EclipseLink会将getResultList()返回

当我使用EclipseLink JPA query.getResultList()时,它不会将结果存储在缓存中,因此当我调用merge时,第一个调用会对每个对象执行全选然后更新

在缓存中获取查询结果的正确方法是什么

我想先进行查询,然后为每个结果调用EntityManager find,但这似乎是错误的。显然我不能先调用find,因为我不知道对象id

基本上,我希望将所有数据缓存在内存中(缓存中),并尽可能快地进行更新


谢谢

默认情况下,EclipseLink会将getResultList()返回的每个对象缓存在共享(二级)缓存中

如果您没有获得缓存,则说明您配置错误

请包括您的代码、配置和SQL日志

你在用弹簧吗?(见附件)

确保未禁用共享缓存或配置刷新

您正在读取多少对象,以及从查询到合并需要多长时间?如果正在读取大量对象,则可能需要增加缓存大小(默认值为100),或更改缓存类型

看,