hibernate组件作为复合主键
package com.xueyoucto.xueyou;
import java.io.Serializable;
/**
* Created by Administrator on 2016/6/25.
*/
public class MulKey implements Serializable {
private String firstkey;
private String lastkey;
public MulKey(String firstkey, String lastkey) {
this.firstkey = firstkey;
this.lastkey = lastkey;
}
public MulKey() {
}
public String getFirstkey() {
return firstkey;
}
public void setFirstkey(String firstkey) {
this.firstkey = firstkey;
}
public String getLastkey() {
return lastkey;
}
public void setLastkey(String lastkey) {
this.lastkey = lastkey;
}
@Override
public boolean equals(Object obj) {
if(this == obj){
return true;
}
if(obj != null && obj.getClass() == MulKey.class){
MulKey target = (MulKey)obj;
return target.getFirstkey().equals(getFirstkey()) && target.getLastkey().equals(getLastkey());
}
return false;
}
@Override
public int hashCode() {
return getFirstkey().hashCode() * 31 + getLastkey().hashCode();
}
}
package com.xueyoucto.xueyou;
import javax.persistence.*;
/**
* Created by Administrator on 2016/6/25.
*/
@Entity
@Table(name = "hh_multientity")
public class MultiEntity {
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "firstkey",column = @Column(name = "multientity_first")),
@AttributeOverride(name = "lastkey",column = @Column(name = "multientity_last")),
})
private MulKey mulkey;
private int age;
public MulKey getMulkey() {
return mulkey;
}
public void setMulkey(MulKey mulkey) {
this.mulkey = mulkey;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
MultiEntity m = new MultiEntity();
m.setAge(12);
m.setMulkey(new MulKey("xxx","yy"));
session.save(m);
数据库中的结果: