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" />
  • 相关阅读:
    Android weight属性详解
    设计模式(一)__单例设计模式
    Java中线程的生命周期
    抽象类和接口
    SQL sever 怎样将DBF文件导入到数据库
    JS去除字符串中空格,及常用正则表达式
    Oracle 11g问题1:关于error:ORA12541: TNS: 没有监听器
    access、excel取随机n条记录
    tsql字符串操作
    测试SQL Server执行时间和CPU时间
  • 原文地址:https://www.cnblogs.com/564085446java/p/3654364.html
Copyright © 2011-2022 走看看