Мне нужна помощь с кешированием запросов в Hibernate Framework. Я настроил свойства ниже, и кеширование l2 работает в моем проекте.
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.use_query_cache" value="true"/>
Я использую аннотации для сущностей, и при извлечении любого объекта MyClass кэширование работает нормально. Когда я использую метод getOnlyNames снизу, кэширование запросов интерфейса не работает. Возможно ли включить кэширование запросов для методов, которые возвращают, например. list of String (не список сущностей, а только выбранные поля)?
@Entity
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class MyClass {
@Id
private long id;
private long name;
}
интерфейс
@Repository
@RepositoryRestResource(exported = false)
public interface MyClassRepository extends JpaRepository<Category, Long> {
(...)
@Cacheable("getOnlyNames")
@Query("select m.name from MyClass m")
List<String> getOnlyNames();
}