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