hibernate 關於聯合主鍵

-----------------------------映射文件----------------------------------------------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;
 } 
}

-----------------------------總結-----------------------------------------

    聯合主鍵  就是把須要設爲主鍵的屬性    提取出來    重寫定義一個主鍵類(就是一個普通類)   聯合主鍵做爲此類的屬性  

    在實體類中 引用該類   映射文件中如上設置。

相關文章
相關標籤/搜索