持久化类的编写规则:
1、提供一个无参构造:因为Hibernate底层需要通过反射生成对象实例,如get和load方法传入字节码便可以将查找到的记录放入对象中返回。
2、属性要与表中的字段对应并私有,对外提供get,set方法。类型要一致,名字尽量一致。
3、提供一个唯一标识OID与主键对应。Hibernate通过OID来确定两个对象是否相同。
4、属性的类型尽量使用包装类。因为基本类型的默认值是0,会有多种含义。而包装类是null就可以确定是没有插入还是就是没有为0。
5、持久化类不能用final修饰。因为load延迟加载是通过继承来生成代理对象的。采用javassist的字节码增强技术。
(扩展:动态代理只能针对有接口的方法产生代理对象)