注:答案在找到Hibernate的MS-SQL錯誤的列類型:小數,預計:浮
我在我的SQL數據庫中創建一些列,並顯然不是創造浮點之前,因爲我的問題的結束必須查找它。對於SQL合規性,我創建了以下列:
ALTER TABLE傳感器 ADD Field1_Calibration_Offset DECIMAL(4,3);
每列8倍。
我在Java代碼中定義等這些:
@Column(name = 「FIELD1_CALIBRATION_OFFSET」) 私人浮動field1CalibrationOffset;
將產生的錯誤:在PsDb.dbo.Sensor列FIELD1_CALIBRATION_OFFSET
錯列類型。發現:小數,預計:浮法
最終答案
按照下面@ jbrookover的回答,我改變爲BigDecimal,我得到:
Wrong column type in PsDb.dbo.Sensor for column FIELD1_CALIBRATION_OFFSET. Found: decimal, expected: numeric(19,2)
所以,我看着我的休眠映射和做的:
@Column(name = "FIELD1_CALIBRATION_SCALE", columnDefinition="decimal", precision=4, scale=3)
private BigDecimal field1CalibrationScale;
你說得對,Java的float是一個近似值。我應該想到自己使用BigDecimal。讓我來研究一下。 我會在我的數據庫中使用什麼來匹配浮動?另外,它是MS SQL Server而不是MySql。 – Thom
更改爲BigDecimal後,我得到: PsDb.dbo.Sensor中的列FIELD1_CALIBRATION_OFFSET的列類型錯誤。發現:小數,預計:數字(19,2) 所以,我看着我的休眠映射和做的: \t @Column(name = 「FIELD1_CALIBRATION_SCALE」,columnDefinition = 「小數」,精度= 4,規模= 3) \t private \t BigDecimal \t \t field1CalibrationScale; – Thom
謝謝@TheThom您的評論剛剛救了我的屁股 – Bnrdo