Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

JPA CriteriaBuilder cách tạo truy vấn tham gia + like

  1. việc lựa chọn không rõ ràng. Trong SQL, bạn chọn s.*, p.name, p.code , nhưng trong tiêu chí, bạn mong đợi một Long ?

  2. LEFT JOIN của bạn không được LEFT .

  3. trong các tiêu chí mà bạn hoàn toàn không tham gia.

  4. bạn nên sử dụng metamodel, như một lời khuyên chung.

Tôi nghĩ bạn muốn tất cả Stock s chứa ít nhất một Product với tên như %value% .

Nếu giả định của tôi là đúng:

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. Cách gỡ lỗi một bình từ xa từ netbeans

  2. mysql, truy vấn với điều kiện đến đâu, nếu một giá trị =bất kỳ thứ gì

  3. Lựa chọn tháng đơn giản của Laravel

  4. Dấu thời gian và ngày tháng trong một hàng bảng MySQL

  5. TẢI THÔNG TIN DỮ LIỆU Mã lỗi:13