Я бы хотел выполнить запрос, указанный ниже, используя типизированный запрос:
SELECT
a.*
FROM
table_a a
INNER JOIN table_b b ON a.id= b.id
WHERE
b.url = 'value.org';
Критерий запроса:
final CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
final CriteriaQuery<A> criteriaQuery = criteriaBuilder.createQuery(A.class);
final Root<A> root = criteriaQuery.from(A.class);
root.fetch(A.domains); // domains is a List<B>
criteriaQuery
.select(root);
Объект A:
@OneToMany
List<B> domains;
Сущность B:
@Column(name="URL")
String url;
Моя проблема заключается в том, как воспроизвести, где, я пробовал что-то вроде:
.where(criteriaBuilder.equal(root.get(A.domains).. ??))
, но я не знаю, как продолжить, потому что предложение предложения as (), in (..), et c ..
Есть какие-нибудь подсказки?