Я использую Hibernate 4.3.11
Я настроил кэш 2-го уровня для своего класса Song, но не получаю много хитов, и мне интересно, так ли это, потому что я обычно получаю свой класс Song следующим образом.
public static List<Song> getSongsFromDatabase(Session session, List<Integer> ids)
{
try
{
List<Song> songs = session
.createCriteria(Song.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.add(Restrictions.in("recNo", ids)).list();
return songs;
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
Это просто получение по первичному ключу, но нужно ли использовать Ehcache по-другому?
Я думаю, что он работает только при использовании lookup one Id метод
public static Song getSongFromDatabase(Session session, Integer id)
{
try
{
return (Song) session.get(Song.class, id);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}