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、付费专栏及课程。

余额充值