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)