Hibernate使用代理来启用延迟加载集合甚至单端关联.根据Hibernate的(3.6.5)参考文档(第21.1.3节,单端关联代理),如果Hibernate包含" 任何最终方法 ",则不能构造这样的代理.
我的问题是,这个限制是仅适用于持久字段的getter/setter还是实际上适用于实体类中的任何方法?那么,这样的方法是这样的:
public final String toString() {
return this.getClass().getSimpleName() + id;
}
Run Code Online (Sandbox Code Playgroud)
真的阻止为这个实体创建(CGLIB或Javassist)代理吗?使用基于字段或属性访问是否重要?由于CGLIB被Javassist取代,这是否提供了这方面的更多功能?
我喜欢在我的实体层次结构中使用继承,因此需要定义一些最终方法,例如,在基类中,以防止子类覆盖这些方法.
提前致谢!
hibernate ×1