CriteriaBuilder внутреннее соединение двух таблиц на предиаке, что поле OneToMany содержит объект - PullRequest
0 голосов
/ 05 апреля 2019

Как написать этот запрос с помощью CriteriaBuilder?

SELECT a FROM Article a JOIN a.categories c WHERE c.id = :idCategory

idCategory - это параметр.

Это то, что я пытался сделать до сих пор, но он возвращает ноль.

CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<Article> crit = builder.createQuery(Article.class);
Root<Article> root = crit.from(Article.class);
Join<Category, Article> join = root.join("categories");
CriteriaQuery<Category> crit2 = builder.createQuery(Category.class);
Root<Category> root2 = crit2.from(Category.class);
crit.select(join).where(builder.equal(root2.get("id"), category.getId())).distinct(true);
Query<Article> q = session.createQuery(crit);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...