-
選択は不明確です。 SQLでは、
s.*, p.name, p.code
を選択します 、ただし、基準ではLong
が必要です ? -
あなたの
LEFT JOIN
LEFT
である必要はありません 。 -
基準では、まったく参加していません。
-
一般的なアドバイスとして、メタモデルを使用する必要があります。
すべてのStock
が必要だと思います 少なくとも1つのProduct
を含む %value%
のような名前 。
私の仮定が正しければ:
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();