Как преобразовать этот критерий код в CriteriaBuilder - PullRequest
0 голосов
/ 19 декабря 2018

Я настраивал код гибернации, используя 3 таблицы, где мне нужно использовать класс сущностей для извлечения данных, а не с использованием любого запроса.

У меня есть код критерия, в котором я использую createAlias, но не могу преобразовать в CriteriaBuilder, поскольку критерии в спящем режиме устарели.

Criteria criteria = session.createCriteria(Star.class, "star"); 
criteria.createAlias("star.assignedTo", "assigned"); 
criteria.createAlias("assigned.team", "team"); 
criteria.add(Restrictions.eq("team.team_id", "12393")); 

Я хочу получить этот код в CriteriaBuilder.

1 Ответ

0 голосов
/ 19 декабря 2018

Что-то вроде

CriteriaBuilder cb; // if I remember correctly en can be obrained either from EntityManager or from CriteriaQuery - its been a while

root=cb.from(Star.class);
teamJoin=root.join("assignedTo").join("team");

cb.eq(teamJoin.get("team_id"),yourid)) // thats the predicate

, очевидно, это своего рода псевдокод, поскольку я понятия не имею ни о ваших классах, ни о свойствах parth, но вы должны понять это здесь.

Просто запомните, чтоэти соединения являются внутренними соединениями.Каждое соединение может иметь указанный тип в качестве второго аргумента - на всякий случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...