1、提供一个无参的构造器。 使hibernate可以用Constructor.newInstance()来实例化持久化类。
2、提供一个标识属性。(identifier property 一般定义一个private Long id; 字段)。通常映射为数据表的主键字段。如果没有该属性,一些功能将不起作用,如:Session.saveOrUpdate()。
3、为持久化类的字段声明访问方法(getter/setter)。Hibernate对JavaBean风格的属性实行持久化。
4、使用非final类。在运行时生成代理是Hibernate的一个重要的功能。如果持久化类没有实现任何接口,Hibernate使用CGLIB生成代理。如果使用的是final类,则无法生成CGLIB代理。
5、重写equals()和hashCode()方法。如果需要把持久化类的实例放到Set中(当需要进行关联映射时),则应该重写这两个方法。