Diese Ausnahme kann auftreten, wenn Hibernate Daten von unerwarteten Art von Datenbank-Abfrageergebnis erhält. Zum Beispiel erwartet Hibernate Zahl, aber stattdessen String.
In diesem Fall nach StreamCorruptedException: "invalid stream header": 74657374
Ausnahme in Stacktrace suchen. Die Zahl ist ein Hinweis für Sie, aber Sie können es in Text mit ASCII-Tabelle konvertieren. 74657374 gibt test
als Zeichenfolge. Welches war der Wert einer ähnlich benannten Tabellenspalte, aber mit völlig anderem Typ. Der Hibernate hat also eine falsche Spalte abgefragt, die zufälligerweise zufällig existiert, also wurde die erste Ausnahme nicht column does not exist
sondern could not deserialize
angezeigt. Hibernate hatte lange erwartet, aber stattdessen String.
ich in diesem Schlamassel, weil richtige @Column(name="id_user")
ignoriert wurde und falschen Spaltenname user
von Feldnamen infered wintern der Getter nicht idUser
aber nur user
mit getUser()
waren. Die Annotation wurde ignoriert, weil sie im Property-Getter anstelle des Felds angegeben wurde, das von Hibernate erwartet wurde, da das ID-Feld der Entitätsoberklasse mit @Id
anstelle des ID-Getters, was ich grundlos erwartet hatte, erwartet wurde.
WOW, was für ein Timing! Ich verbrachte die letzten 2 Tage damit, das Gleiche herauszufinden. Ich hatte eine Abteilung Entität, die ein OneToOne und JoinColumn für ein Manager-Attribut zu einem Employee Entity hatte, das auch ein Attribut Department hatte. Nachdem ich Ihre Antwort gesehen hatte (am selben Tag wie mein Problem), wurde mir klar, dass meine Mitarbeiter-Entität nicht über das entsprechende OneToMany-Attribut verfügte. Vielen Dank!! – jeff
Ich bin wirklich froh, dass ich helfen kann :) –
Leider habe ich dieses Problem auch ... irgendwo in ~ 100 Entity-Klassen mit 7500+ Zeilen Code. Die Ausnahme ist im Grunde genommen nicht hilfreich. =/ –