刚刚升级到hibernate 3.6.0,发现此方法已被弃用。
public Serializable getIdentifier(Object object, EntityMode entityMode) throws HibernateException;
它已被“替换”
public Serializable getIdentifier(Object entity, SessionImplementor session);
我不确定为什么要这样做,更重要的是,我不相信新方法是合适的替代品。
我有一些代码,它通过使用这个API从XML(属性 - >属性等)和其他一些零碎的东西创建hibernate对象来绑定hibernate对象/属性。
我一直认为ClassMetadata是一个用于此目的的公共API。我已经意识到SessionImplementor是一个不能用作应用程序代码的内部API。
假设我在上述两个断言中是正确的,公共API需要私有API作为参数似乎是错误的?
有谁知道为什么要这样做以及我将来如何接近进行程序化的hibernate对象访问?
(有趣的是,获取/设置属性值方法仍然采用EntityMode。)
答案 0 :(得分:0)
我问自己同样的问题。我不知道为什么这样做,但现在我们需要一些脏的铸件来使用公共API。这毫无意义。