Ich habe Abfrage folgende was in Ordnung funktioniert:JPA Kriterien - holen mit where-Klausel
public ContractorContractor findContractorByName(String contractorName) {
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<ContractorContractor> query = builder.createQuery(ContractorContractor.class);
Root<ContractorContractor> root = query.from(ContractorContractor.class);
query.select(root).distinct(true);
Predicate namePredicate = builder.like(root.get(ContractorContractor_.name), contractorName);
query.where(builder.and(namePredicate));
return em.createQuery(query).getSingleResult();
}
Above Abfrage mir einzigen Auftragnehmer von Namen gibt oder Ausnahme auslöst. Jetzt möchte ich das gleiche tun, aber mehr Informationen über Auftragnehmer (fügen Sie den Abruf zu einem anderen Kind des Auftragnehmers), aber mit der folgenden Abfrage bekomme ich kein Ergebnis (org.springframework.dao.EmptyResultDataAccessException: Kein Ergebnis für die Abfrage gefunden wird geworfen). Abfrage mit fetch:
Kann mir jemand sagen, was ich falsch mache und warum in obiger Abfrage?
Welche SQL wird vom JPA-Provider GENERIERT? schau in sein Protokoll. Dies ist ein Schritt namens "Debugging" –
http://pastebin.com/c1QYb6TY gibt es eine ganze Reihe von Spalten, aber .. – Gazeciarz
so führen Sie die SQL selbst MANUELL im Datenspeicher –