Ich bin mit Hibernate und„Keine Zeile mit der angegebenen Kennung vorhanden ist“, obwohl es vorhanden ist
Exception in thread „main“ org.hibernate.ObjectNotFoundException bekommen: keine Zeile mit der angegebenen Kennung vorhanden ist: [# 271]
Was an diesem Fehler ziemlich seltsam ist, ist, dass das Objekt mit der angegebenen ID in der Datenbank existiert. Ich habe den problematischen Datensatz in einem anderen Lauf der Anwendung eingefügt. Wenn ich darauf im selben Lauf (d. H. Dieselbe Hibernate-Sitzung) zugreife, scheint es keine Probleme beim Abrufen der Daten zu geben.
Nur weil es ein Fehler der Abbildung sein könnte:
public class ProblemClass implements Persistent {
@ManyToOne(optional = false)
private MyDbObject myDbObject;
}
public class MyDbObject implements Persistent {
@OneToMany(mappedBy = "myDbObject")
private List<ProblemClass> problemClasses;
@ManyToOne(optional = false)
private ThirdClass thirdClass;
}
Ich habe absolut keine Ahnung, selbst wenn sie an zu suchen. Alle Hinweise sehr geschätzt!
Nur zur Verdeutlichung: Die Daten wurden in einem anderen RUN der Anwendung eingefügt. Es ist definitiv in der Datenbank, wie ich es über eine SQL-Abfrage nach dem Beenden der Anwendung sehen kann. Und nach dem, d. H. Wenn ich die Anwendung erneut starte, bekomme ich den Fehler in der ersten Abfrage der Datenbank - keine Löschung, kein Rollback beteiligt.
Zusatz: Weil es wurde gefragt, hier ist der Code, um die Daten zu holen:
public List<ProblemClass> getProblemClasses() {
Query query = session.createQuery("from ProblemClass");
return query.list();
}
Und es vollständig nur zu machen, hier der allgemeine Code ist es einzufügen (vor in einem anderen RUN des Abrufen die Anwendung):
public void save(Persistent persistent) {
session.saveOrUpdate(persistent);
}
Verwenden Sie InnoDB-Tabellen ... –
Vielen Dank für die Antwort! – Lisa