时间:2021-07-01 10:21:17 帮助过:29人阅读
对持久化对象的要求 1、 提供一个无参构造器,使Hibernate可以使用Constructor.newInstace()来实例化持久化对象 2、提供一个标识属性(identifier property)。通常映射为数据库表的主键字段,如果没有该属性,一些功能将不起作用,如Session.saveOrUpdate()
对持久化对象的要求
1、 提供一个无参构造器,使Hibernate可以使用Constructor.newInstace()来实例化持久化对象
2、提供一个标识属性(identifier property)。通常映射为数据库表的主键字段,如果没有该属性,一些功能将不起作用,如Session.saveOrUpdate()。
3、 为持久化类的字段声明访问方法(set/get)。Hibernate对javaBean风格的属性实行持久化。
4、使用非final类,在运行时生成代理是Hibernate的一个重要功能,如果持久化类没有实现任何接口,Hibernate使用CGLB生成代理,如果使用final类,则无法生成CGLIB代理。
5、重写equals()和hashCode()方法,如果需要将持久化类放到Set中(当需要进行关联映射时),则应该重写这两个方法。
对于映射配置文件中非主键元素使用
可以写Java中类的全名,也可以写Hibernate类型。
映射主键属性
主键如果是数字建议使用对应的包装类型。
id元素用于映射主键,id元素子元素
其常用值如下:
identity:使用数据库的自动增长策略,不是所有数据库都支持,比如Oracle就不支持
sequence:在DB2,PostgreSQL,Oracle,SAPDB等中使用sequence。
hilo:使用高地位算法生成主键,只需要一张额外的表,所有的数据库都支持。
increment:由Hibernate维护的,先查询当前最大的id值,在加1增长,不推荐使用,因为有线程安全问题。
assigned:手工指定主键。