[转]Hibernate中property-ref的使用,常用来解决遗留数据库One To Many关系

1.如表Class(ClassID,Class_No,ClassName)与Student(StudentID,studentName,Class_No), 
其中ClassID,studentID为主键 
两个表是一对多的关系,而要求两个通过ClassNo来关联(注意到这个classNo并不是主键classID).  
而一般的情况下是通过ClassID,放在student表中作为外键. 
2.具体的Hibernate的配置文件如下: 
Class.hbm.xml: 
  <property 
        name="classNo" 
        type="java.lang.String" 
        column="Class_No" 
        length="30" 
    /> 
    <!-- Associations --> 
      <set name="students" 
    lazy="false" 
    inverse="true" 
         cascade="all-delete-orphan" 
        >

<key column="Class_No"    property-ref="classNo"/> 
    
    <one-to-many 
            class="Student" 
        /> 
    </set>

Student.hbm.xml:

<many-to-one 
        name="class" 
        class="Class" 
  not-null="true" 
  property-ref="classNo" 
    > 
        <column name="Class_No"      /> 
    </many-to-one>

3.注意点: 
property-ref属性一般用来解决遗留数据库One To Many关系的问题 
property-ref(可选)被关联到此外键的类中的对应属性的名字,若没指定,使用被关联类的主键. 
property-ref=是不是数据库表中的字段名,而是定义的java类中的属性性名,一定要注意.

最新文章

  1. iOS开发系列--Objective-C之类和对象
  2. [c++] Copy Control
  3. 统计:P值 &amp; α值
  4. [转]jsp与servlet的区别联系
  5. 四元数(Quaternion)和旋转(转)
  6. 减去border边框
  7. php的查询数据
  8. 接口自动化的根基--HTTP协议
  9. propertyGrid控件 z
  10. 修改linux终端命令行颜色
  11. MFC的规则DLL中资源使用的问题
  12. imagick获取图片的大小bug
  13. Call U
  14. 如何高效实现扫描局域网IP、主机名、MAC和端口
  15. bzoj 3529 数表
  16. Unity 5.X扩展编辑器之打包assetbundle
  17. ubuntu频繁出现 安装包依赖关系
  18. linux操作系统-设置静态ip
  19. bzoj 1212: [HNOI2004]L语言 AC自动机+状压
  20. ViewPager Fragment PagerAdapter MD

热门文章

  1. Android 使用网络ADB调试.
  2. JAVA编程思想——类型信息(反射)
  3. View的工作原理(二)——layout
  4. python连接redis002
  5. C#多显示器转换的两种方法——SetWindowPos,Screen
  6. Nutch环境搭建
  7. 深入理解JavaScript的闭包特性 如何给循环中的对象添加事件(转载)
  8. grep 和 sed:linux经常使用工具 &amp;amp; 基本正則表達式
  9. 依赖注入及AOP简述(七)——FQCN请求模式
  10. C#整理7——函数