2017-06-27 2 views
0

Ich sehe einen Fehler, wenn ich versuche, Objekte mit BigDecimal zu persistieren.mssql-jdbc kann BigDecimal-Felder nicht speichern. Fehler beim Konvertieren des Datentyps nvarchar in den Dezimalwert

com.microsoft.sqlserver.jdbc.SQLServerException: Fehlerdatentyp nvarchar Umwandlung in Dezimalzahlen

diesen Fehler zu vermeiden, muss ich BigDecimal Genauigkeit zu verringern. Oder benutze einfach den JTDS-Treiber.

Vielleicht verstehe ich etwas nicht? Dieser Fehler bleibt jahrelang bestehen. Gibt es eine Eigenschaft, die eingerichtet werden muss, während mssql-jdbc verwendet wird?

Antwort

1

http://dertompson.com/2008/01/03/bigdecimal-and-jdbc-since-java-5-0-2/

Anscheinend ist der Umwandlungsprozess wandelt die Doppel in eine Zeichenkette, die zu viele Werte hinter dem Dezimalzeichen enthalten. Das wird dann in das BigDecimal konvertiert. Dieser Konvertierungsprozess ist der Ort, an dem der Fehler auftritt.

Ich löste dies, indem ich mit decimalFormat() die Anzahl der gewünschten signifikanten Ziffern beibehalten und diese Zeichenfolge in der neuen BigDecimal() - Konvertierung verwendete.

+0

Ja abrunden können, ich weiß, dass die Leidensgeschichte. Aber ich war überrascht, dass es im Jahr 2017 immer noch keine Lösung gibt (außer die manuelle Skalierung). – jNess

Verwandte Themen