-----------------------------映射文件----------------------------------------------java
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">app
<hibernate-mapping package="cn.gdpe.compositeKey" auto-import="true">
<class name="User">
<!-- 複合主鍵映射 -->
<composite-id name="keys">//聯合主鍵對象與實體類定義的引用名必須一致
<key-property name="userName" type="string"></key-property>
<key-property name="address" type="string"></key-property>
</composite-id>
<property name="age" type="int"></property>
</class>this
</hibernate-mapping>spa
-------------------------------聯合主鍵類----------------------------------------------hibernate
package cn.gdpe.compositeKey;xml
import java.io.Serializable;對象
// 複合主鍵類
public class CompositeKeys implements Serializable{
private String userName;
private String address;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}get
------------------------------實體對象類---------------------------------string
public class User {it
// 名字跟地址,不會重複
private CompositeKeys keys;
private int age;
public CompositeKeys getKeys() {
return keys;
}
public void setKeys(CompositeKeys keys) {
this.keys = keys;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
-----------------------------總結-----------------------------------------
聯合主鍵 就是把須要設爲主鍵的屬性 提取出來 重寫定義一個主鍵類(就是一個普通類) 聯合主鍵做爲此類的屬性
在實體類中 引用該類 映射文件中如上設置。