hibernate 聯合主鍵
阿新 • • 發佈:2017-07-28
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 聯合主鍵