Hibernate学习手记(2)--单向一对多映射

Hibernate实现单向一对多映射


 

数据库表中表现为“多”那方有“一”的外键,类中表现为“一”那方有“多”那方的集合。

 

“一”那方的xml 配置文件的格式如下:

hibernate-mapping  package=" 此处填写包文件

    ﹤class  name=" 一对多中一的实体类的类名 "  table=" 所对应的数据库的表名 "  

       ﹤id  name=" 所对应的实体类的属性 (id)" 

             column="所对应的数据表的字段 (**_id)"
             unsaved-value="null" 

              ﹤generator class="native"/

        ﹤/id

        ﹤property name=" 对应数据表中其他的字段 ﹥﹤ /property

        

        ﹤set  name=" 对应实体类中的那个集合的属性 "    

              inverse="true" 

              lazy="true" 

              cascade="save-update" 
              ﹤key column=" 对应其外键的字段  "/
              ﹤one-to-many class=" 对应一对多中多的实体类的类名 "/
        ﹤/set
      ﹤/class
/hibernate-mapping

 

一个user 可以有多个亲人,以下为 user 的类,

public   class  User {

private   int  userID;               

     private  String username;            

private  String password;

private  Set<Relationship>  relationships =

                                          n ew   HashSet<Relationship>();

 

/*属性的 get set 方法 */

 

}

 

配置文件User.hbm.xml 如下:

<hibernate-mapping   package= "com.gis.Entity"  >

<class   name= "com.gis.Entity.User"  table = "user">

         < id  name = "userID"  column ="userID"   type= "java.lang.String"

            < generator  class = "native"></ generator >

         </ id

         

         < property  name = "username"  type ="java.lang.String"   >

            < column  name = "username"  />

         </ property >

         

         < property  name = "password"  type ="java.lang.String" >

            < column  name = "password"  />

         </ property >

         

          < set  name = " relationships cascade ="save-update" >

              <!-- 外键字段  -->

              < key  column = "userID"/>

              < one-to-many  class = "com.gis.Entity.Relationship"/>

         </ set >

  </ class >

</hibernate-mapping >

 

亲人relationship 的类:

public   class  Relationship {

private   int  r_id;                 

private  String r_name;               

private   int  userID;               

private  String phone;

/*属性的 get set 方法 */

}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值