传智播客Hibernate视频教程学习笔记27
2009-08-06 12:48
495 查看
inverse属性的作用:
上次也说到,Department中有Employee的Set,Employee中有所属的Department信息,那么保存的时候不是要保存两遍。
写在一个事务里的话就会重复执行update语句两次。
那么我们就让一对多这方,放弃对关系的维护,比如老师要记住所有的学生,比较难,而学生记住一个老师,比较容易。
那么在配置文件上设置inverse属性
Department.hbm.xml
inverse 意义为是否放弃维护关系,若是true则不维护关系。反之维护。
这样的话先保存部门,那么只会出现三条insert语句
Hibernate: insert into Department (name) values (?)
Hibernate: insert into Employee (name, dpt_id) values (?, ?)
Hibernate: insert into Employee (name, dpt_id) values (?, ?)
完全没有浪费了。
到这里稍微明白了一些,关系由一方维护
上次也说到,Department中有Employee的Set,Employee中有所属的Department信息,那么保存的时候不是要保存两遍。
写在一个事务里的话就会重复执行update语句两次。
那么我们就让一对多这方,放弃对关系的维护,比如老师要记住所有的学生,比较难,而学生记住一个老师,比较容易。
那么在配置文件上设置inverse属性
Department.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="domain"> <class name="Department"> <id name="id"> <generator class="native"/> </id> <property name="name"></property> <set name="epys" lazy="false" inverse="true"> <key column="dpt_id"></key> <one-to-many class="Employee"/> </set> </class> </hibernate-mapping>
inverse 意义为是否放弃维护关系,若是true则不维护关系。反之维护。
这样的话先保存部门,那么只会出现三条insert语句
Hibernate: insert into Department (name) values (?)
Hibernate: insert into Employee (name, dpt_id) values (?, ?)
Hibernate: insert into Employee (name, dpt_id) values (?, ?)
完全没有浪费了。
到这里稍微明白了一些,关系由一方维护
相关文章推荐
- 传智播客Hibernate视频教程学习笔记18
- 传智播客Hibernate视频教程学习笔记20
- 传智播客Hibernate视频教程学习笔记23
- 传智播客Hibernate视频教程学习笔记29
- 传智播客Hibernate视频教程学习笔记38
- 传智播客Hibernate视频教程学习笔记42
- 传智播客Hibernate视频教程学习笔记54
- 传智播客Hibernate视频教程学习笔记1
- 传智播客Hibernate视频教程学习笔记6
- 传智播客Hibernate视频教程学习笔记14
- 传智播客Hibernate视频教程学习笔记33
- 传智播客Hibernate视频教程学习笔记44 45
- 传智播客Hibernate视频教程学习笔记50
- 传智播客Hibernate视频教程学习笔记53
- 传智播客Hibernate视频教程学习笔记10 11 12 13
- 传智播客Hibernate视频教程学习笔记15
- 传智播客Hibernate视频教程学习笔记31
- 传智播客Hibernate视频教程学习笔记39
- 传智播客Hibernate视频教程学习笔记51
- 传智播客Hibernate视频教程学习笔记2