Hibernate как использовать detachedCriteria с Query Cached
У меня есть отдельные критерии, как это
private final DetachedCriteria DETACHED_CRITERIA_FOR_FILTERING_STUDENTS= DetachedCriteria.forClass(Students.class)
.add(filters)
.add(super.criterionForFilteringStudents)
.setProjection(idProjection())
.setResultTransformer(transformer(Students.class));
Позже я использую его, как обычно, у меня есть таблица с именем RelationShip, в которой есть Integer, который не является ключевым ключом, а просто столбцом Integer.
final Criteria criteria = session.createCriteria(RelationShip.class)
.add(filters)
.add(Subqueries.propertyIn("c03",DETACHED_CRITERIA_FOR_FILTERING_STUDENTS));
Все работает как шарм, но я понял, что этот запрос полностью кэширован, я имею в виду, что я использовал это, конечно, в другом контексте.
public List<Student>getStudents()
{
final Criteria criteria = session.createCriteria(Students.class)
.add(filters)
.add(super.criterionForFilteringStudents)
.setProjection(idProjection())
.setResultTransformer(transformer(Students.class))
.setCacheable(true)
.setCacheRegion(region);
return criteria.list();
}
Конечно, я мог бы сделать что-то вроде
public List<RelationShip>getRelationShip()
{
final Criteria criteria = session.createCriteria(RelationShip.class)
.add(filters)
.add(Restrictions.in("c03",getStudents()));
return criteria.list();
}
Но я пришел с этой проблемой, как я мог использовать DetachedCriteria, который является запросом, который полностью кэшируется или кэшируется, это возможно?
У меня есть попытка
DETACHED_CRITERIA_FOR_FILTERING_STUDENTS.getExecutableCriteria(session).setCacheable(true).setCacheRegion(region)
Но безуспешно.
Это возможно?