BigDecimal Präzision nicht dauerhaft mit JPA-Annotationen

Ich bin mit dem javax.persistence API und Hibernate mit Anmerkungen versehen und speichern von Entitäten und Ihre Attribute in einer Oracle 11g Express-Datenbank.

Habe ich das folgende Attribut in einer Entität:

@Column(precision = 12, scale = 9)
private BigDecimal weightedScore;

Ziel ist die Persistenz von einem decimal-Wert mit maximal 12-stellig und maximal 9 von diesen Ziffern rechts von der Dezimalstelle.

Nach der Berechnung weightedScore, das Ergebnis ist 0.1234, aber sobald ich verpflichte mich, das Unternehmen mit der Oracle-Datenbank, der Wert zeigt als 0.12.

Ich sehen kann, entweder durch Verwendung einer EntityManager-Objekt für die Abfrage der Eintrag oder die Anzeige direkt in die Oracle Application Express (Apex) - Schnittstelle in einem web-browser.

Wie soll ich kommentieren meine BigDecimal-Attribut, so dass die Genauigkeit beibehalten wird, richtig?

Hinweis: Wir verwenden eine in-memory-HSQL-Datenbank für die Ausführung unserer unit-tests, und es nicht erleben das Problem mit der fehlenden Präzision, mit oder ohne @Column annotation.

Update:

Blick auf die Tabelle die Beschreibung, die definition der weightedScore Spalte ist NUMBER(19, 2). Ich habe jetzt auch versucht, die änderung der Anmerkung zu @Column(columnDefinition="Number(12, 9)"), aber dies hatte keine Wirkung. Weiß jemand, warum Oracle nicht mehr auf diese Anmerkungen?

Schreibe einen Kommentar