-
Die Auswahl ist unklar. In SQL wählen Sie
s.*, p.name, p.code
, aber in Kriterien erwarten Sie einenLong
? -
Ihr
LEFT JOIN
muss nichtLEFT
sein . -
an Kriterien hast du überhaupt nicht teil.
-
Sie sollten Metamodell als allgemeine Empfehlung verwenden.
Ich glaube, Sie möchten alle Stock
s, die mindestens ein Product
enthalten mit Namen wie %value%
.
Wenn meine Vermutung richtig ist:
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();