zoukankan      html  css  js  c++  java
  • hibernate关联关系映射

    一、一对一关联(有共享主键关联和惟一外键关联两种)

    1、共享主键关联
     
    比如课题是由教师去任教,没有教师就没有课题,这样课题就可以完全由教师来决定。
     
    Java示例代码如下:
     
    publicclass Course {
        private Long id;
     
        private String name;
     
        private Teacher teacher;
        // 省略setter和getter 方法
    }
     
    publicclass Teacher {
        private Long id;
     
        private String name;
     
        private Course course;
        // 省略setter和getter 方法
    }
     
    配置文件
    Teacher.hbm.xml
    <!-- cascade="all" 表明对Teacher对象CRUD的操作会级联到Course对象 -->
    <one-to-one name="course" class="powerwind.bean.Course"
        cascade="all" />
    Course.hbm.xml
    <!-- id值参照 teacher属性而生成-->
    <id name="id" type="java.lang.Long" column="id">
        <generator class="foreign">
           <param name="property">teacher</param>
        </generator>
    </id>
    <!-- teacher属性参照 -->
    <one-to-one name="teacher" class="powerwind.bean.Teacher"
               constrained="true" />
     
    2、惟一外键关联
    外键关联需要一个定义外键字段,比如在教师表定义一个课题的外键 course_id。
     
    配置文件
    Teacher.hbm.xml
    <many-to-one name="course" class="powerwind.bean.Course"
           column="course_id" cascade="save-update" unique="true"/>
    如果同时在Coure.hbm.xml加上如下配置则为双向关联。
    <one-to-one name="teacher" class="powerwind.bean.Teacher"
           property-ref="course" />
  • 相关阅读:
    KVC KVO
    Objective-C的hook方案(一): Method Swizzling
    Method Swizzle黑魔法,修改 ios 系统类库方法 SEL IMP
    http 请求安全
    块对象block小结(2)
    块对象block小结
    springmvc项目目录总结
    软件开发实用标准流程——文档
    冷知识:反常识的margin-top与padding-top与%,你被坑过吗?
    菜鸟笔记:在公司内网下搭好Java项目环境(IDEA、maven、svn)
  • 原文地址:https://www.cnblogs.com/564085446java/p/3654364.html
Copyright © 2011-2022 走看看