Hibernate gibt BigIntegers statt Longs zurück

7

Dies ist meine Sender-Entität

%Vor%

Wenn ich versuche folgende Abfrage auszuführen:

%Vor%

Der folgende Fehler tritt auf:

  

FEHLER: org.hibernate.property.BasicPropertyAccessor - HHH000123: IllegalArgumentException in Klasse: be.gimme.persistence.entities.Sender, Setter-Methode der Eigenschaft: senderId

     

FEHLER: org.hibernate.property.BasicPropertyAccessor - HHH000091: Erwarteter Typ: long, tatsächlicher Wert: java.math.BigInteger

Das passiert, weil die senderId in der Klasse Sender tatsächlich eine lange statt einer BigInteger ist (die von Hibernate zurückgegeben wird).

Ich habe mich gefragt, was die beste Vorgehensweise in einem Fall wie diesem ist, sollte ich BigIntegers als ID's verwenden (Scheint ein bisschen Overkill)?

Sollte ich die Abfrageergebnisse manuell in Objekte der Klasse Sender umwandeln (Das wäre schade)? Oder kann ich Hibernate nur long ids anstelle von BigInteger s zurückgeben? Oder irgendwelche anderen Ideen?

Ich benutze Spring, Hibernate 4.1.1 und MySQL

    
Tristan Van Poucke 12.09.2013, 07:42
quelle

4 Antworten

18

Der Standard für ".list ()" im Ruhezustand scheint BigInteger-Rückgabetypen für Numerisch zu sein. Hier ist eine Arbeit:

%Vor%     
rogerdpack 06.04.2015, 21:04
quelle
3

Die Objektdatenbankzuordnung ist falsch. Es gibt eine Casting-Ausnahme, die besagt, dass das Datenbankfeld BigInteger ist, die Objekteigenschaft jedoch long .

BigInteger ist eine spezielle Klasse zum Speichern von unbegrenzten Integer-Werten. Außerdem kann BigInteger nicht implizit zu long konvertieren.

Um diesen Fehler zu vermeiden, sollte das Datenbankfeld BigInteger in long compatible type geändert werden. Ändern Sie es in einen int Typ, wobei int implizit an long übergeben werden kann. Siehe BigInteger .

    
erencan 12.09.2013 10:42
quelle
2

In älteren Versionen von Hibernate können Sie

verwenden %Vor%     
Willian Crozeta 25.07.2016 20:21
quelle
1

können Sie auf folgendem Link nachsehen Hier nach der BigInteger-Identity-Generator-Klasse suchen

    
haripcce 14.10.2013 07:27
quelle