hibernate 联合主键

Posted popcorn丫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate 联合主键相关的知识,希望对你有一定的参考价值。

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 联合主键的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate注解映射联合主键的三种主要方式(转载)

hibernate联合主键 注解方式

hibernate 联合主键

hibernate ——联合主键

hibernate里联合主键composite-id映射,查询单个主键的问题

hibernate MTM 联合主键