`
q445862108
  • 浏览: 79836 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Hibernate联合主键

    博客分类:
  • java
阅读更多
package pojo;

/**
 * 一个测试联合主键的POJO
 * @author ex_yixb
 *
 */
public class Hr {
	private PkClass  pkClass;
	private String remark;
	
	public Hr() {
	}
	
	public PkClass getPkClass() {
		return pkClass;
	}
	public void setPkClass(PkClass pkClass) {
		this.pkClass = pkClass;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	
}






package pojo;

import sun.security.pkcs.PKCS10;

/**
 * 联合主键类
 * @author ex_yixb
 *
 */
public class PkClass implements java.io.Serializable{   //一定要实现此接口
	private String name="";  //联合的字段
	private String pwd="";

	//必须要重写equals  和  hashCode
	@Override
	public boolean equals(Object obj) {
		try {
			if(this==obj){
				return true;
			}
			if(obj==null){
				return false;
			}
			PkClass pkClass = (PkClass) obj;
			if(this.name.equals(pkClass.getName()) && this.pwd.equals(pkClass.getPwd())){
				return true;
			}
		} catch (Exception e) {
			return false;
		}
		return super.equals(obj);
	}
	
	@Override
	public int hashCode() {
			final int PRIME = 31;
		   int result = 1;
		   result = PRIME * result + ((name == null) ? 0 : name.hashCode());
		   result = PRIME * result + ((pwd == null) ? 0 : pwd.hashCode());
		   return result;
	}
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
	
}


测试
public static void main(String[] args) {
		Session session=HibernateSessionFactory1.getSession();
		PkClass pkClass = new PkClass();
		pkClass.setName("a");
		pkClass.setPwd("BB");
		Hr hr=(Hr) session.get(Hr.class,pkClass);
	}



<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="pojo.Hr" table="Hr">
        <composite-id name="pkClass">
            <key-property name="name" column="name" length="12"/>
            <key-property name="pwd" column="pwd" length="12"/>
        </composite-id>
        <property name="remark" column="remark" length="12"/>
    </class>
</hibernate-mapping>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics