我們使用Hibernate。如何確保日期從Java存儲到SQLServer以毫秒分辨率?
在Java中,對象是java.util.Date。 在SQLServer中,該列是datetime2(7)。
當我們將此對象存儲在SQLServer數據庫中並稍後檢索它時,此對象的毫秒分辨率的值不會相同。
例如,從Java:Dec 01 2016 15:50.453
當它從數據庫返回:Dec 01 2016 15:50.455
所以,我們所遇到的情況,其中的equals()方法,以SQLServer的這一設計方面的失敗所致。
Hibernate方言中是否缺少某些東西,例如:註冊列類型。
或者我應該定義一些轉換,以便獲得我保存的正確值。
沒有。當前時間戳不是唯一的用例。在應用程序運行時,我們可能會將日期保存在某個對象中,並在稍後的時間點保存在數據庫中。 –
您比較時間戳時遇到問題。但我不能告訴沒有更多的細節我推薦替代方案。通常我依賴於將所有對象綁定到特定會話的GUID。我可以創建並可靠地檢索所有關聯的數據。 – duffymo