sql >> Databasteknik >  >> RDS >> Mysql

JPA CriteriaBuilder hur man skapar join + like-fråga

  1. urvalet är oklart. I SQL väljer du s.*, p.name, p.code , men i kriterier förväntar du dig en Long ?

  2. din LEFT JOIN måste inte vara LEFT .

  3. i kriterier har du ingen medlem alls.

  4. du bör använda metamodellen som ett allmänt råd.

Jag tror att du vill ha allt Stock s som innehåller minst en Product med namn som %value% .

Om mitt antagande stämmer:

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();



  1. Hur kör man MySQL-kommandot på bash?

  2. är det möjligt att få fjärråtkomst till mysql-databasen på delade hostingar?

  3. Uppdatera ett jobbsteg för ett SQL Server Agent Job (T-SQL)

  4. Använder UDF för standardvärdet för en kolumn