2010-11-25 97 views
2

剛剛升級到hibernate 3.6.0,發現不推薦使用此方法。爲什麼不推薦使用hibernate的ClassMetadata.getIdentifier(Object,EntityMode)

public Serializable getIdentifier(Object object, EntityMode entityMode) throws HibernateException; 

它已被這個

public Serializable getIdentifier(Object entity, SessionImplementor session); 

「取代」我不知道爲什麼這樣做了,而且更重要的是,我不相信新的方法是一個合適的替代者。

我有代碼綁定hibernate對象/屬性通過使用此API從XML(屬性 - >屬性等)和其他一些零件創建hibernate對象。

我一直認爲ClassMetadata是一個公共API,用於此目的。而且我知道SessionImplementor是一個內部API,不能用於應用程序代碼。

假設我在上述兩個斷言中是正確的,公共API需要私有API作爲參數似乎是錯誤的?

有沒有人知道爲什麼這樣做,我將如何接近未來編程的hibernate對象訪問?

(有趣的是,獲取/設置屬性值的方法仍然採取EntityMode)

回答

0

我問自己同樣的問題。我不知道爲什麼這樣做,但現在我們需要一些骯髒的鑄件來使用公共API。這根本沒有意義。

相關問題