zoukankan      html  css  js  c++  java
  • Hibernate中一对多关联的时候hbm.xml文件的配置

    Hibernate中一对多关联的时候hbm.xml文件的配置

    假设有一个文档管理者类User,和一个文档类Archives。其中User和Archives是一对多双向关联关系

    表现在类中如下(此处省略了属性的set和get方法)

    User类定义如下:

    public class User implements Serializable {
    /** 定义id */
    private Long id;
    /** 定义用户名*/
    private String username;
    /** 定义密码*/
    private String password;
    //定义该用户要管理的档案
    private List<Archives> archives;
    }
    

    Archives类定义如下:

    public class Archives implements Serializable {
    private static final long serialVersionUID = 1L;
    private Long id;
    // 文档名字
    private String name;
    // 定义文档管理者
    private User manager;
    }
    

    以上两个类分别映射到数据库中的User表和ARCHIVBES表
    

    User.hbm.xml文件的配置:
    
            <!--archives是user类里文档的名字,它的类型是list,他所对应的数据库中的表的
            名字是ARCHIVES.-->
           <list name = "archives"  table = "ARCHIVES" cascade = "save-update"  lazy="true">
           <!-- 用户表所关联的表的外键,此处为ARCHIVES表的USER_ID -->
           <key column = "USER_ID"></key>
           <!-- ARCHIVES_ID是ARCHIVES表中的主键 -->
            <index column = "ARCHIVES_ID"></index>
           <!-- 表示user和archives是一对多关系 -->
           <one-to-many class = "com.archivesManagement.domain.Archives"></one-to-many>
           </list> 
    

     Archives.xml文件的配置:
     <!-- USER_ID为ARCHIVES的外键 -->
        <many-to-one name="manager"          
          column = "USER_ID"
          class = "com.archivesManagement.domain.User"
          not-null = "true">
        </many-to-one>
    
    %0A%0A%u5047%u8BBE%u6709%u4E00%u4E2A%u6587%u6863%u7BA1%u7406%u8005%u7C7BUser%2C%u548C%u4E00%u4E2A%u6587%u6863%u7C7BArchives%u3002%u5176%u4E2DUser%u548CArchives%u662F%u4E00%u5BF9%u591A%u53CC%u5411%u5173%u8054%u5173%u7CFB%0A%0A%u8868%u73B0%u5728%u7C7B%u4E2D%u5982%u4E0B%28%u6B64%u5904%u7701%u7565%u4E86%u5C5E%u6027%u7684set%u548Cget%u65B9%u6CD5%uFF09%0A%0AUser%u7C7B%u5B9A%u4E49%u5982%u4E0B%uFF1A%0A%20%20%20%0A%20%20%20%20public%20class%20User%20implements%20Serializable%20%7B%0A%09/**%20%u5B9A%u4E49id%20*/%0A%20%20%20%20private%20Long%20id%3B%0A%20%20%20%20/**%20%u5B9A%u4E49%u7528%u6237%u540D*/%0A%20%20%20%20private%20String%20username%3B%0A%20%20%20%20/**%20%u5B9A%u4E49%u5BC6%u7801*/%0A%20%20%20%20private%20String%20password%3B%0A%09//%u5B9A%u4E49%u8BE5%u7528%u6237%u8981%u7BA1%u7406%u7684%u6863%u6848%0A%20%20%20%20private%20List%3CArchives%3E%20archives%3B%0A%20%20%20%20%7D%0A---------------------------------------------------------------------------------------%0AArchives%u7C7B%u5B9A%u4E49%u5982%u4E0B%uFF1A%0A%20%20%20%20%0A%20%20%20%20public%20class%20Archives%20implements%20Serializable%20%7B%0A%09private%20static%20final%20long%20serialVersionUID%20%3D%201L%3B%0A%09private%20Long%20id%3B%0A%09//%20%u6587%u6863%u540D%u5B57%0A%09private%20String%20name%3B%0A%09//%20%u5B9A%u4E49%u6587%u6863%u7BA1%u7406%u8005%0A%09private%20User%20manager%3B%0A%09%7D%0A%09%0A---------------------------------------------------------------------------------------%0A%0A%20%20%20%20%u4EE5%u4E0A%u4E24%u4E2A%u7C7B%u5206%u522B%u6620%u5C04%u5230%u6570%u636E%u5E93%u4E2D%u7684User%u8868%u548CARCHIVBES%u8868%0A%20%20%20%20%0A---------------------------------------------------------------------------------------%0A%20%20%20%20%0A%20%20%20%20User.hbm.xml%u6587%u4EF6%u7684%u914D%u7F6E%uFF1A%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%21--archives%u662Fuser%u7C7B%u91CC%u6587%u6863%u7684%u540D%u5B57%uFF0C%u5B83%u7684%u7C7B%u578B%u662Flist%uFF0C%u4ED6%u6240%u5BF9%u5E94%u7684%u6570%u636E%u5E93%u4E2D%u7684%u8868%u7684%0A%20%20%20%20%20%20%20%20%20%20%20%20%u540D%u5B57%u662FARCHIVES.--%3E%0A%20%20%20%20%20%20%20%20%20%20%20%3Clist%20name%20%3D%20%22archives%22%20%20table%20%3D%20%22ARCHIVES%22%20cascade%20%3D%20%22save-update%22%20%20lazy%3D%22true%22%3E%0A%09%09%20%20%20%3C%21--%20%u7528%u6237%u8868%u6240%u5173%u8054%u7684%u8868%u7684%u5916%u952E%uFF0C%u6B64%u5904%u4E3AARCHIVES%u8868%u7684USER_ID%20--%3E%0A%09%09%20%20%20%3Ckey%20column%20%3D%20%22USER_ID%22%3E%3C/key%3E%0A%09%09%20%20%20%3C%21--%20ARCHIVES_ID%u662FARCHIVES%u8868%u4E2D%u7684%u4E3B%u952E%20--%3E%0A%09%09%20%20%20%20%3Cindex%20column%20%3D%20%22ARCHIVES_ID%22%3E%3C/index%3E%0A%09%09%20%20%20%3C%21--%20%u8868%u793Auser%u548Carchives%u662F%u4E00%u5BF9%u591A%u5173%u7CFB%20--%3E%0A%09%09%20%20%20%3Cone-to-many%20class%20%3D%20%22com.archivesManagement.domain.Archives%22%3E%3C/one-to-many%3E%0A%09%09%20%20%20%3C/list%3E%20%0A%09%09%20%20%20%0A---------------------------------------------------------------------------------------%0A%0A%20%20%20%20%20%20%0A%20%20%20%20%20Archives.xml%u6587%u4EF6%u7684%u914D%u7F6E%uFF1A%0A%20%20%20%20%20%3C%21--%20USER_ID%u4E3AARCHIVES%u7684%u5916%u952E%20--%3E%0A%09%09%3Cmany-to-one%20name%3D%22manager%22%09%09%20%20%0A%09%09%20%20column%20%3D%20%22USER_ID%22%0A%09%09%20%20class%20%3D%20%22com.archivesManagement.domain.User%22%0A%09%09%20%20not-null%20%3D%20%22true%22%3E%0A%09%20%20%20%20%3C/many-to-one%3E%0A%09%09





  • 相关阅读:
    近来有客户要求用table显示一大串数据,由于滚动后就看不到表头,很不方便,所以想到这个效果。
    js如何取当前日期时间/格式为:yyyymmdd hh:mm:ss
    jdk源码分析 – Thread线程类源码分析
    Swing中的MVC
    编程生涯的一次思想总结
    怎样成为高手
    浅谈测试驱动开发(TDD)
    Java RMI之HelloWorld篇(EJB都是建立在rmi基础之上的)
    Swing框架之Model
    EJB 工作原理
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/9d2c336e7903cafaddbf079f3dec6185.html
Copyright © 2011-2022 走看看