JPA規範或官方文檔中是否存在關於某些JPA實現的任何陳述,這些實現描述了當我們註釋實體方法時以及註釋實體字段時的行爲?在JPA(Hibernate)中註釋字段和方法的區別?
就在幾個小時前,我遇到了一個醜陋的問題:我用MS SQL Server使用JPA(通過Hibernate,但沒有任何Hybernate特定的Java代碼)。我把所有註釋放在實體的字段上(我更喜歡這種風格直到今天)。
當我查看數據庫時,發現所有應該在前鍵和應該包含一些整數(ID)的表列中實際上有varbinary(255, null)
類型和包含某些東西的哈希值(我不知道那是什麼,但是它看起來像一個典型的MD5哈希)。
最令人沮喪的是,該應用程序正常工作。但偶爾(在更新)我得到了MS SQL異常,它聲明我試圖插入太長的值和數據不能被截斷。
最後(作爲實驗)我從實體字段中刪除所有註釋,並將它們全部放在方法上。我重新創建了DB,並且所有表格都包含完美的FK列。這些列存儲整數(ID,如1,3,4 ...)。
那麼,有人可以解釋那是什麼嗎?
我發現this SO thread它被接受的答案說,首選的方法是把註釋放在字段上。至少對於我的具體情況,我可以說這不是真的。
由於某種原因,到SO線程的鏈接不正確。 – 2010-07-21 23:11:12
@Vineet雷諾茲:謝謝!現在它是正確的。 – Roman 2010-07-21 23:15:36
可能的重複[Hibernate註釋 - 哪個更好,字段或屬性訪問?](http://stackoverflow.com/questions/594597/hibernate-annotations-which-is-better-field-or-property-access) – 2010-07-21 23:21:23