Die BigDecimal-Genauigkeit wurde bei JPA-Anmerkungen nicht beibehalten

Ich verwende die API "javax.persistence" und "Hibernate", um Anmerkungen zu erstellen und Entitäten und ihre Attribute in einer Oracle 11g Express-Datenbank beizubehalten.

Ich habe das folgende Attribut in einer Entität:

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

Ziel ist es, einen Dezimalwert mit maximal 12 Stellen und maximal 9 dieser Stellen rechts von der Dezimalstelle beizubehalten.

Nach der BerechnungweightedScore, das Ergebnis ist 0.1234, aber sobald ich die Entität mit der Oracle-Datenbank festschreibe, wird der Wert als 0.12 angezeigt.

Ich kann dies sehen, indem ich entweder ein EntityManager-Objekt zum Abfragen des Eintrags verwende oder es direkt in der Oracle Application Express (Apex) -Schnittstelle in einem Webbrowser ansehe.

Wie soll ich mein BigDecimal-Attribut mit Anmerkungen versehen, damit die Genauigkeit korrekt beibehalten wird?

Hinweis: Wir verwenden eine speicherinterne HSQL-Datenbank, um unsere Komponententests durchzuführen. Das Problem tritt weder mit noch ohne die auf@Column Anmerkung.

Aktualisieren:

Betrachtet man die Tabellenbeschreibung, so ergibt sich die Definition derweightedScore Spalte istNUMBER(19, 2). Ich habe jetzt auch versucht die Annotation zu ändern@Column(columnDefinition="Number(12, 9)"), aber das hat keine Wirkung gehabt. Weiß jemand, warum Oracle auf diese Anmerkungen nicht reagiert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage