IllegalArgumentException: Argumenttyp stimmt nicht mit Hibernate überein

8

Aus heiterem Himmel habe ich im Hibernate "IllegalArgumentException: argument type mismatch" bekommen. Die Hibernate-Entity arbeitete lange und svn-Logs bestätigen, dass der Code intakt ist.

Was könnte der Fall sein?
Hier ist ein Teil der Ausnahme

%Vor%     
Quintin Par 16.01.2010, 17:25
quelle

5 Antworten

8

Übersetzung: Hibernate stellt ein Argument vom falschen Typ bereit, wenn versucht wird, eine Setter-Methode aufzurufen.

Mein erster Schritt wäre, herauszufinden, welcher Setter das ist (z. B. indem Sie die Anwendung in Eclipse debuggen, einen Ausnahmebreakpoint setzen und die Stack-Variablen untersuchen, sobald der Breakpoint erreicht ist).

Bearbeiten: Was ist die Signatur des Setter für die gemappte Eigenschaft qs ? Es sollte ein Set<Q> sein.

    
meriton 16.01.2010, 18:40
quelle
3

Ich habe davon gehört, dass dies aufgrund der zugrunde liegenden Datenbankfeldänderungen (z. B. Datum bis Zeitstempel) passiert ist. Es könnte sich lohnen, die Änderungen an der Datenbank rückgängig zu machen, wenn Sie in der Lage sind, sie zu testen oder die .hbm-Datei oder die Anmerkungen zu überprüfen, wie es Sands vorgeschlagen hat.

    
Kaleb Brasee 16.01.2010 18:07
quelle
3

Sie haben also eine Hibernate-Mapping-Datei geändert, ohne die Entity zu ändern? Ich vermute, dass die Eigenschaft qs schon da war. Aber ist es ein java.util.Set (wie Sie ein <set> verwendet haben, um mappe deine Sammlung )?

    
Pascal Thivent 16.01.2010 18:55
quelle
1

Die Lösung ist die Verwendung von " addScalar " in Ihrer Abfrageausführung.

Angenommen, Ihre Entität ist ein Benutzer:

%Vor%

Anstatt zu tun:

%Vor%

Verwenden Sie addScalar:

%Vor%

Hinweis : Vor LongType.INSTANCE gab es Hibernate.LONG und Hibernate.STRING (sie sind jetzt veraltet).

    
gezdy 09.11.2012 21:25
quelle
0

Manchmal ist es passiert, wenn die Typen nicht kompatibel sind. Für die MySQL-Abfrage muss die Umwandlung von Casting aus Gründen der Kompatibilität erfolgen.

%Vor%

Ich hoffe, dies wird den Leuten helfen, auf das ähnliche Problem mit JPA (JPA-Hibernate für genau) zu stoßen.

    
zawhtut 26.03.2018 10:21
quelle

Tags und Links