Mam dwie tabele o nazwie jak table1, table2. Oba tabele mają takie same nie pola. Nie ma związku między tymi dwoma tabelami.Moje wymagania jest chcę wszystkie rekordy w tabeli 1, których nie ma w tabeli 2. Napisałem więc zapytanie za pomocą API Criteria. Ale to nie daje prawidłowego wyniku. Ponieważ jestem nowy w tym JPA i API kryteriów, każdy może mi wskazać, gdzie robię źle. Poniższy kod używam do tego.Budowanie kwerendy za pomocą NOT EXISTS w kryteriach jpa api
CriteriaBuilder cb = mediationEntityManager.getCriteriaBuilder();
CriteriaQuery<Table1> cq = cb.createQuery(Table1.class);
Root<Table1> table1 = cq.from(Table1.class);
cq.select(table1)
Subquery<Table2> subquery = cq.subquery(Table2.class)
Root table2 = subquery.from(Table2.class)
subquery.select(table2)
cq.where(cb.not(cb.exists(subquery)))
TypedQuery<Table1> typedQuery = mediationEntityManager.createQuery(cq);
List<Table1> resultList = typedQuery.getResultList();
MySQL Query:
SELECT table1
FROM table1 table1
WHERE NOT EXISTS (SELECT table2
FROM table2 table2
WHERE table2.name = table1.name
AND table2.education = table1.education
AND table2.age = table1.age)
AND table1.name = 'san'
AND table1.age = '10';
muszę zapytanie kryteria API WZP przez wyżej wymienione zapytania MySQL.
Ale jak ty różnicowania danych między tymi tabelami, należy określić kryteria/kolumna itp –
Witam bardzo dziękuję za udzielenie odpowiedzi daję rzeczywistą kwerendy mysql w moim oryginalne Question.Plz nią patrzeć, a jeśli to możliwe, podać mi zapytanie dotyczące kryteriów jpa dla tego samego zapytania mysql. – aaaa