Hibernate配置详解 --POJO映射文件 – 类映射
2013-03-18 13:45
288 查看
POJO映射文件–类映射
<class
name=“POJO的类全路径”
table=“对应的库表名”
discriminator-value=“discriminator_value”
dynamic-update=“true | false”
dynamic-insert=“true | false”
select-before-update=“true | false”
polymorphism=“implicit | explicit”
where=“查询时使用的SQL的条件子句”
lazy=“true | false”
/>
Name:POJO的类的全路径。本项一定要配置。
Table:POJO对应的库表名。本项一定要配置。
select-before-update:是否在执行update时发送一条select语句查询对象是否被修改过,只有修改过时,update语句才会真的被执行。本项可以不配置。默认为false。
dynamic-update:更新SQL是否动态生成。为false时,每次更新都会将POJO的所有属性更新到DB;为true时,只更新POJO中修改过的属性。本项可以不配置。如果select-before-update=“false”,则dynamic-update 失效,变成静态update。
dynamic-insert:插入SQL是否动态生成。为false时,每次插入都会将POJO的所有属性插入到DB;为true时,只插入POJO中非空的属性。本项可以不配置。默认为false。
Lazy:设置延迟加载策略。本项可以不配置。
select-before-update效果演示
1用session的update方法更新一个对象
查看Hibernate控制台上是否只打印了一条update语句
2将select-before-update设为true,再次执行上述更新
查看Hibernate控制台上,在打印update语句之前,是否先打印了一条select语句(是否真的在执行更新之前进行了查询)
3保持select-before-update设为true,创造一个对象,且它的要更新的所有属性的值与数据库里对应字段的值相同,用update语句更新这个对象
查看控制台上是否打印select和update语句(是否因为查询到更新后的数据和更新前的数据相同,而没有执行update动作)
4如果将select-before-update设为false,再次执行上述操作
查看控制台上是否打印select和update语句(是否因为取消了select-before-update,导致没有判断数据是否有差异,直接执行更新动作)
dynamic-insert效果演示
1创造一个POJO实例,将它的部分属性设为和数据库里对应字段的值相同,然后用session的update方法将它插入到数据库
查看Hibernate控制台上打印的update语句(是否更新了所有属性对应的字段)
2将dynamic-update设为true,再次执行上述插入
查看Hibernate控制台上打印的update语句(是否没有更新值和数据库里对应字段相同的属性对应的字段)
3将dynamic-update设为false,再看看效果
POJO映射文件实例–类映射
<class
name=“a.b.Student”
table=“STUDENT_LIST”
discriminator-value=“a.b.Student”
dynamic-update=“true”
dynamic-insert=“true”
select-before-update=“true”
polymorphism=“implicit”
where=“age < 18”
lazy=“true”
/>
<class
name=“POJO的类全路径”
table=“对应的库表名”
discriminator-value=“discriminator_value”
dynamic-update=“true | false”
dynamic-insert=“true | false”
select-before-update=“true | false”
polymorphism=“implicit | explicit”
where=“查询时使用的SQL的条件子句”
lazy=“true | false”
/>
Name:POJO的类的全路径。本项一定要配置。
Table:POJO对应的库表名。本项一定要配置。
select-before-update:是否在执行update时发送一条select语句查询对象是否被修改过,只有修改过时,update语句才会真的被执行。本项可以不配置。默认为false。
dynamic-update:更新SQL是否动态生成。为false时,每次更新都会将POJO的所有属性更新到DB;为true时,只更新POJO中修改过的属性。本项可以不配置。如果select-before-update=“false”,则dynamic-update 失效,变成静态update。
dynamic-insert:插入SQL是否动态生成。为false时,每次插入都会将POJO的所有属性插入到DB;为true时,只插入POJO中非空的属性。本项可以不配置。默认为false。
Lazy:设置延迟加载策略。本项可以不配置。
select-before-update效果演示
1用session的update方法更新一个对象
查看Hibernate控制台上是否只打印了一条update语句
2将select-before-update设为true,再次执行上述更新
查看Hibernate控制台上,在打印update语句之前,是否先打印了一条select语句(是否真的在执行更新之前进行了查询)
3保持select-before-update设为true,创造一个对象,且它的要更新的所有属性的值与数据库里对应字段的值相同,用update语句更新这个对象
查看控制台上是否打印select和update语句(是否因为查询到更新后的数据和更新前的数据相同,而没有执行update动作)
4如果将select-before-update设为false,再次执行上述操作
查看控制台上是否打印select和update语句(是否因为取消了select-before-update,导致没有判断数据是否有差异,直接执行更新动作)
dynamic-insert效果演示
1创造一个POJO实例,将它的部分属性设为和数据库里对应字段的值相同,然后用session的update方法将它插入到数据库
查看Hibernate控制台上打印的update语句(是否更新了所有属性对应的字段)
2将dynamic-update设为true,再次执行上述插入
查看Hibernate控制台上打印的update语句(是否没有更新值和数据库里对应字段相同的属性对应的字段)
3将dynamic-update设为false,再看看效果
POJO映射文件实例–类映射
<class
name=“a.b.Student”
table=“STUDENT_LIST”
discriminator-value=“a.b.Student”
dynamic-update=“true”
dynamic-insert=“true”
select-before-update=“true”
polymorphism=“implicit”
where=“age < 18”
lazy=“true”
/>
相关文章推荐
- hibernate映射文件 xx.hbm.xml配置映射元素详解--Hibernate映射类型
- hibernate映射文件XXX.hbm.xml配置映射元素详解--对象标识符(OID)
- Hibernate入门到开发(三)详解映射配置文件
- hibernate映射配置文件详解
- Hibernate映射配置文件详解
- Hibernate映射配置文件中id标签的unsaved-value属性详解
- Hibernate配置文件中映射元素详解(1)
- hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型
- 配置Middlegen-Hibernate和hibernate-extensions以产生hbm映射文件和POJO
- Myeclipse如何自动创建hibernate以及配置struts2以及数据库表创建映射文件 详解
- Hibernate学习笔记--映射配置文件详解
- 配置Middlegen-Hibernate和hibernate-extensions以产生hbm映射文件和POJO
- Hibernate配置(一):用MiddleGen生成映射文件和用hbm2java生成pojo
- Hibernate配置文件与映射文件详解
- Hibernate配置文件中映射元素详解
- Hibernate的配置文件和映射文件详解
- hibernate映射文件??.hbm.xml配置映射元素详解
- Hibernate配置文件与映射文件详解
- Hibernate配置文件中映射元素详解
- Hibernate配置文件中映射元素详解