I want to implement second level cache for one of entities.But i am fetching data using field which is not ID.I read in many posts that second level cache works only if we are fetching data using id.Is there any way,so that i can implement second level cache to fetch data using field other than id? I am using Eh-cache,JPA repository and spring Boot.How can I implement query cache?
in properties file:
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=true
hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
Repository.java
public interface SomeRepository extends JpaRepository<SomeClass, Long> {
@Query("SELECT .....WHERE id= :someId")
@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value ="true") })
List<Lookup> findAllByProjectId(@Param("someId") Long someId);
}