Die folgende Methode verwendet die createNativeQuery() Methode des Manager Java Einheit:EntityManager Native Abfragesyntax?
public List<Dog> findDogById(String id) {
List<Dog> resultList = new ArrayList<>();
try {
resultList = persistence.entityManager().createNativeQuery(" SELECT * FROM DOG WHERE ID = '" + id+ "' ", DogEntity.class).getResultList();
} catch (Exception e) {
}
return resultList;
}
Das Problem, das ich habe, ist, dass diese Methode nicht welche Ergebnisse ist, wenn ich es erwarten, dies zu tun. I.e. Wenn ich die Abfragen direkt über SQL Developer
ausführen bekomme ich Ergebnisse, aber die Methode gibt nicht das gleiche zurück.
Ist meine Syntax
korrekt? Ich bin nicht sicher, dazu:
" SELECT * FROM DOG WHERE ID = '" + id+ "' "
heißt brauche ich sowohl die '
und die "
?
Dank ich die e.printStackTrace hinzugefügt haben(), die, dass ein Fehler, wenn ausgelöst hat gezeigt, die Abfrage versucht auszuführen. Dies würde die leeren Listen erklären, die zurückgegeben werden? – java123999
Akzeptierte Antwort, da es half, mein Problem zu lösen. Mein Code warf einen Fehler auf, den ich ignorierte. Der Fehler war, dass mein DB-Aktualisierungsskript nicht ausgeführt wurde, also suchte Hibernate nach einer Spalte, die noch nicht da war. – java123999