hibernate组件作为复合主键

来源:互联网 发布:编程人生 编辑:程序博客网 时间:2024/05/29 10:35

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);

数据库中的结果:


1 0