sql >> Database teknologi >  >> RDS >> Mysql

JPA CriteriaBuilder hvordan man opretter join + like-forespørgsel

  1. valget er uklart. I SQL vælger du s.*, p.name, p.code , men i kriterier forventer du en Long ?

  2. din LEFT JOIN skal ikke være LEFT .

  3. i kriterier har du slet ingen deltagelse.

  4. du bør bruge metamodel som et generelt råd.

Jeg tror, ​​du vil have alt Stock s, som indeholder mindst ét ​​Product med navn som %value% .

Hvis min antagelse er rigtig:

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. SSIS-pakken ønsker ikke at hente metadata fra den midlertidige tabel

  2. Send ID'er til pre_get_posts-forespørgsel i funktion

  3. Indsendelse af kommaseparerede værdier til WHERE-sætning i oracles lagrede procedure

  4. Indstil nøgle/værdipar i sessionskonteksten i SQL Server (sp_set_session_context)