Hibernate多对一单向关联映射

本文介绍Hibernate中多对一单向关联映射的方法,包括Address与People两个实体类的定义及其XML映射文件,展示了如何通过many-to-one标签建立联系,并提供了测试程序示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     Hibernate多对一单向关联映射 

1、AddressTwo.hbm.xml

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE hibernate-mapping 
          PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" 
>
< hibernate-mapping >
  
< class  name ="com.persistent.AddressTwo"  table ="address" >   
    
< id  name ="id"  column ="addressId"  unsaved-value ="0" >
        
< generator  class ="increment" >
        
</ generator >
    
</ id >     
    
< property  name ="addressName"  column ="addressName" ></ property >     
    
< many-to-one  name ="peopleTwo"  
                 column
="peopleId"  
                 class
="com.persistent.PeopleTwo"
                 cascade
="all"
                 
>
    
</ many-to-one >     
  
</ class >   
</ hibernate-mapping >

2、PeopleTwo.hbm.xml

< hibernate-mapping   default-lazy ="false" >   
   
< class  name ="com.persistent.PeopleTwo"  table ="people" >      
     
< id  name ="id"  column ="peopleId"  unsaved-value ="0" >     
        
< generator  class ="increment" >         
        
</ generator >     
     
</ id >      
     
< property  name ="name"  column ="name" ></ property >           
   
</ class >
</ hibernate-mapping >

3、PeopleTwo.java和AddressTwo.java

public   class  PeopleTwo  {    
    
private long id;
    
private String name;
    …
}

public   class  AddressTwo  {    
    
private long id;
    
private PeopleTwo peopleTwo;
    
private String addressName;

}

4、测试程序

Session session  =  HibernateSessionFactory.getSession();
session.beginTransaction();
List result 
=  session.createQuery( " from AddressTwo " ).list();
session.getTransaction().commit();
for ( int  i  =   0 ; i < result.size(); i ++ ) {
       AddressTwo addressTwo 
= (AddressTwo)result.get(i);
       System.out.println(addressTwo.getId()
+"    "
                                            +addressTwo.getAddressName()+"    "
                                            +addressTwo.getPeopleTwo().getId()+"     "
                                            +addressTwo.getPeopleTwo().getName()
                                        );
}
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值