hibernate映射

many2one配置:
            many-to-one产生外键。
            fetch只在查询关联对象的时候起作用,控制发生什么样的sql加载关联对象
            many-to-one标签上fetch默认是select;单独范松sql加载管理对象fetch=join;发送一条join语句加载对象和关联对象
            lazy 只在查询时起作用控制什么时候发生sql不同的标签上的lazy属性管理着不同对象的加载class标签上的lazy管理的是loadEmp.many-to-one标签上的lazy管理的是getDept
            many-to-one标签lazy的默认值是proxy;当访问dept时才发生sql
            lazy=false:和emp一起发送sql
            当fetch=join时:lazy失效
       
            <many-to-one name = "dept" cascade="save-update" fetch="select" lazy="false">
            <column name = "deptno" sql-type="number(2,0)"></column>
            </many-to-one>
     
one2many
<set name="emps">
<!产生外键》
<key>
<column name = "deptno" sql-type="number(2,0)"></column>
</key>
<one-to-many class="com.cn.po.Emp"/>
</set>    

双向一对多,多对一(合集):inverse标识翻转的意思是由谁来控制外键(注意不要丢失外键的配置)


单向多对一:保存员工的时候保存部门
单项一对多:保存部门的时候保存员工
双向一对多,多对一:都可以


多对多配置
<set name="name" table="stu_course">
<!-- 外键,必须以本表的id作为参照物 -->
<many-to-many column = "cou_id" class="Course"></many-to-many>
<set>

猜你喜欢

转载自hui-sui-yue.iteye.com/blog/2183219