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)

Но безуспешно.

Это возможно?

0 ответов

Другие вопросы по тегам