我正在使用javax.persistence API和Hibernate在Oracle 11g Express數據庫中創建註釋和持久實體及其屬性。BigDecimal精度不會持久保留JPA註釋
我有一個實體以下屬性:
@Column(precision = 12, scale = 9)
private BigDecimal weightedScore;
我們的目標是堅持一個十進制值最多的12個數字和小數點右邊最多的這些數字9。
計算weightedScore
後,結果爲0.1234,但是一旦我將實體提交給Oracle數據庫,則該值顯示爲0.12。
我可以通過使用EntityManager對象查詢條目或直接在Web瀏覽器中的Oracle Application Express(Apex)接口中查看它來查看。
我應該如何註釋我的BigDecimal屬性,以便精確度持續正確?
注意:我們使用內存中的HSQL數據庫來運行我們的單元測試,並且它不會遇到缺少精度的問題,無論是否有@Column
註釋。
更新:
望着桌上的描述中,weightedScore
列定義爲NUMBER(19, 2)
。我現在也嘗試將註釋更改爲@Column(columnDefinition="Number(12, 9)")
,但這不起作用。有誰知道爲什麼Oracle對這些註釋沒有反應?
該錯誤報告還表示,該錯誤僅適用於大於9,223,372,036,854,775,808的值,並且它已被_fixed_。 – Ben