<!--[if !supportLists]-->1. <!--[endif]-->实现一个默认的(无参数的)构造方法
1).所有的持久类必须有一个默认的构造方法,这个hibernate可以使用反射构建此持久类。
2).提供一个标识符属性,建议声明一致的标识属性。
3).使用非final类(可选),hibernate的懒加载需要此类不是final的或是实现了一个所有方法都为public的接口
4).为持久化字段声明访问器(get和set方法)和是否可变的标识(可选)
2.实现继承
public class DomesticCat extends Cat { private String name; public String getName() { return name; } protected void setName(String name) { this.name=name; } |
3.实现equals和hashCode方法
由于在一对多中集合是以Set来容纳的。而Set规定了如果set中某个元素,以一种影响equals比较的方式的改变对象的值,那么Set的行为就是不确定的。而如果一个未保存的对象(此时其没有标识值)在set中,如果执行保存该对象,则将会给这个对象一个标志值,如果equals和hashCode方法是基于标志值实现的,则其哈希码会改变。这就违反了set契约。建议使用业务键值相等来实现equals和hashCode