У меня есть объект с именованным запросом.eclipselink query-results-cache не работает
@Entity(name = "MyEntity")
@Table(name = "mytable")
//@ReadOnly
@NamedQueries({
@NamedQuery(
name = "exampleFind",
query = "[..]",
hints = {@QueryHint(name= QueryHints.QUERY_RESULTS_CACHE, value= "TRUE")})
})
@Cacheable
@Cache(type = CacheType.FULL)
public class MyEntity {
Когда я аннотирование этого класса @ReadOnly то этот запрос не попали в базу данных (используется кэш результатов только), но когда я удалить @ReadOnly аннотации всегда выполняет SQL в базе данных.
Как включить этот кеш без @ReadOnly? Существуют ли ограничения на кеш результатов?
Я использую EclipseLink 2.4.1
Спасибо. К сожалению, это не помогает. Есть ли возможность регистрировать/контролировать кеши в eclipselink, чтобы проверить, включен ли кеш или когда обновлен? Возможно, этот кеш недействителен каждый раз, и именно по этой причине всегда есть запрос SQL к базе данных. – Mario
Вы можете запросить отдельные объекты, если они кэшированы в общем кэше. , Это можно сделать с помощью IdentityMapAccessor: https://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching. Есть еще много измерений производительности, но я еще не пробовал их. Также вы можете настроить ведение журнала для eclipselink на самые тонкие детали в вашем persistence.xml – Thirler