-
de selectie is onduidelijk. In SQL selecteer je
s.*, p.name, p.code
, maar in criteria verwacht je eenLong
? -
je
LEFT JOIN
hoeft nietLEFT
te zijn . -
in criteria heb je helemaal geen lidmaatschap.
-
je moet metamodel gebruiken als algemeen advies.
Ik denk dat je alle Stock
wilt hebben s die ten minste één Product
. bevatten met naam als %value%
.
Als mijn veronderstelling juist is:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Stock> cq = cb.createQuery(Stock.class);
Root<Stock> stock = cq.from(Stock.class);
Join<Stock, Product> product = stock.join(Stock_.products);
cq.select(stock);
cq.distinct(true);
cq.where(cb.like(product.get(Product_.name), "%" + value + "%");
return em.createQuery(cq).getResultList();