Mysql
 sql >> Baza danych >  >> RDS >> Mysql

JPA CriteriaBuilder jak utworzyć zapytanie typu join + like

  1. wybór jest niejasny. W SQL wybierasz s.*, p.name, p.code , ale w kryteriach oczekujesz Long ?

  2. Twój LEFT JOIN nie musi być LEFT .

  3. w kryteriach, do których w ogóle nie pasujesz.

  4. powinieneś używać metamodelu jako ogólnej porady.

Myślę, że chcesz wszystkie Stock które zawierają co najmniej jeden Product o nazwie jak %value% .

Jeśli moje założenie jest słuszne:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić wartości wierszy jako kolumny w MySQL?

  2. Wady przechowywania obrazów w bazie danych?

  3. Czy klucz podstawowy jest również indeksem?

  4. miasta i odległość według szerokości i długości geograficznej

  5. OpenSSL - błąd 18 przy wyszukiwaniu głębokości 0:samopodpisany certyfikat