最好不要和数据库中的关键词发生冲突
1,使用非final的类 (可选)
代理(proxies)是Hibernate的一个重要的功能,它依赖的条件是,持久化类或者是非final的,或者是实现了一个所有方法都声明为public的接口。
你可以用Hibernate持久化一个没有实现任何接口的final类,但是你不能使用代理来延迟关联加载,这会限制你进行性能优化的选择。
2,提供一个标识属性(identitier property)(可选)
标识符属性是可选的。可以不用管它,让Hibernate内部来追踪对象的识别。 但是我们并不推荐这样做
你也应该避免在非final类中声明 public final的方法。如果你想使用一 个有public final方法的类,你必须通过设置lazy="false" 来明确地禁用代理。
3,实现一个默认的(无参数的)构造方法(constructor);
4,为持久化字段声明访问器(accessors)和是否可变的标志(mutators)get/set方法(可选)
很多其他ORM工具直接对 实例变量进行持久化。我们相信,在关系数据库schema和类的内部数据结构之间引入间接层(原文为"非直接",indirection)会好一些。默认情况下Hibernate持久化JavaBeans风格的属性,认可 getFoo,isFoo 和 setFoo这种形式的方法名。 如果需要,你可以对某些特定属性实行直接字段访问。
属性不需要要声明为public的。Hibernate可以持久化一个有 default、protected或private的get/set方法对 的属性进行持久化