2010-11-25 99 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。这根本没有意义。

相关问题