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)