hibernate配置文件中的properties元素

 http://huihai.iteye.com/blog/1149635


假如现在有班级Class类与学生student类,但是在映射时,学生表关联的外键不是班级表的主键id,而是年级(grade)与班号(numb)这两个联合作外键,这样就要用到hibernate里的properties属性了。

 

Class.java类如下:

package cn.ehoo.hibernate.domain;   
/**  
 *@author whp  
 *@Email whp@ehoo.cn  
 *@Aug 15, 2011  
 *  
 */  
public class Class {   
    private Long id;   
    private String grade;   
    private String number;   
    public String getGrade() {   
        return grade;   
    }   
    public void setGrade(String grade) {   
        this.grade = grade;   
    }   
    public String getNumber() {   
        return number;   
    }   
    public void setNumber(String number) {   
        this.number = number;   
    }   
    public Long getId() {   
        return id;   
    }   
    public void setId(Long id) {   
        this.id = id;   
    }   
       
       
}  

Class.hbm.xml文件如下:

<?xml version="1.0"?>  
<!DOCTYPE hibernate-mapping PUBLIC    
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
<hibernate-mapping package="cn.ehoo.hibernate.domain">  
    <class name="Class" table="class">  
        <id name="id" type="long">  
            <generator class="native" />  
        </id>  
        <properties name="name" unique="true" update="false">  
            <property name="grade" />  
            <property name="number" />  
        </properties>  
  
    </class>  
</hibernate-mapping>  
Student.java类如下:

package cn.ehoo.hibernate.domain;   
/**  
 *@author whp  
 *@Email whp@ehoo.cn  
 *@Aug 15, 2011  
 *  
 */  
public class Student {   
    private Long id;   
    private String name;   
    private Class cla;   
    public Class getCla() {   
        return cla;   
    }   
    public void setCla(Class cla) {   
        this.cla = cla;   
    }   
    public Long getId() {   
        return id;   
    }   
    public void setId(Long id) {   
        this.id = id;   
    }   
    public String getName() {   
        return name;   
    }   
    public void setName(String name) {   
        this.name = name;   
    }   
       
}  
Student.hbm.xml文件如下:

<?xml version="1.0"?>  
<!DOCTYPE hibernate-mapping PUBLIC    
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
<hibernate-mapping package="cn.ehoo.hibernate.domain">  
    <class name="Student" table="student">  
        <id name="id" type="long">  
            <generator class="native" />  
        </id>  
        <many-to-one name="cla" class="Class" property-ref="name">  
            <column name="grade"></column>  
            <column name="number"></column>  
        </many-to-one>  
    </class>  
</hibernate-mapping>  

总之一句话, 当你在做关联时,两个表之间的外键关联由两个或以上的属性组成时, 就需要用到 properties元素。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值