首页 > 代码库 > POJO类以及映射配置文件

POJO类以及映射配置文件

对持久化对象的要求

1、 提供一个无参构造器,使Hibernate可以使用Constructor.newInstace()来实例化持久化对象

2、提供一个标识属性(identifier property)。通常映射为数据库表的主键字段,如果没有该属性,一些功能将不起作用,如Session.saveOrUpdate()

3、 为持久化类的字段声明访问方法(set/get)。HibernatejavaBean风格的属性实行持久化。

4、使用非final类,在运行时生成代理是Hibernate的一个重要功能,如果持久化类没有实现任何接口,Hibernate使用CGLB生成代理,如果使用final类,则无法生成CGLIB代理。

5、重写equals()hashCode()方法,如果需要将持久化类放到Set中(当需要进行关联映射时),则应该重写这两个方法。

对于映射配置文件中非主键元素使用<property>标签映射,<property>标签的type属性用来指定持久化类和数据表中的类型。

可以写Java中类的全名,也可以写Hibernate类型。

映射主键属性

主键如果是数字建议使用对应的包装类型。

id元素用于映射主键,id元素子元素<generator>class属性用于指定主键生成策略。

其常用值如下:

identity:使用数据库的自动增长策略,不是所有数据库都支持,比如Oracle就不支持

sequence:在DB2PostgreSQLOracleSAPDB等中使用sequence

hilo:使用高地位算法生成主键,只需要一张额外的表,所有的数据库都支持。

increment:由Hibernate维护的,先查询当前最大的id值,在加1增长,不推荐使用,因为有线程安全问题。

assigned:手工指定主键。

 

POJO类以及映射配置文件