1. 程式人生 > >hibernate 聯合主鍵

hibernate 聯合主鍵

blog package site http Coding logs override ide pac

xml配置

需要一個主鍵類:

package com.bxw.entity;

import java.io.Serializable;


public class StudentPk implements Serializable{
    private String id;
    private String name;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        
return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object obj) { if(obj instanceof StudentPk){ StudentPk pk = (StudentPk)obj; if(this.name.equals(pk.getName()) && this.id.equals(pk.getId())){
return true; } return false; } return false; } @Override public int hashCode() { return this.id.hashCode(); } }

該主鍵類必須implements序列化的Serializable接口;

該主鍵類必須重寫equals()、hashCode()方法。

實體:

package com.bxw.entity;

public class Student {
    
private StudentPk pk; private String sex; public StudentPk getPk() { return pk; } public void setPk(StudentPk pk) { this.pk = pk; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }

配置文件

<?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 package="com.bxw.entity">  
   <class name="Student">  
      <composite-id name="pk" class="com.bxw.entity.StudentPk">
          <key-property name="id"></key-property>
        <key-property name="name"></key-property>
      </composite-id>        
      <property name="sex"></property>  
   </class>
</hibernate-mapping>  

hibernate 聯合主鍵