`
shiwj1010
  • 浏览: 97309 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate映射复合主键的一个示例

    博客分类:
  • j2ee
阅读更多
MealfeeDetail.hbm.xml
<?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="cn.com.dragontec.welfaremanagement.model.MealfeeDetail" table="Mealfee_detail" >
        <composite-id >
            <key-property name="personNo" type="java.lang.String">
                <column name="person_no" length="32" />
            </key-property>
            <key-property name="workdate" type="java.lang.String">
                <column name="work_date" length="8" />
            </key-property>
        </composite-id>
    </class>
</hibernate-mapping>


MealfeeDetail.java
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

/**
 * MealfeeDetail generated by MyEclipse Persistence Tools
 */

public class MealfeeDetail implements java.io.Serializable {

	private String personNo;
	private String workdate;

	// Constructors

	/** default constructor */
	public MealfeeDetail() {
	}

	/** full constructor */
	public MealfeeDetail(String personNo, String workdate) {
		this.personNo = personNo;
		this.workdate = workdate;
	}

	public String getPersonNo() {
		return personNo;
	}

	public void setPersonNo(String personNo) {
		this.personNo = personNo;
	}

	public String getWorkdate() {
		return workdate;
	}

	public void setWorkdate(String workdate) {
		this.workdate = workdate;
	}
	
	 // 必须重新定义equals()与hashCode()
    public boolean equals(Object obj) {
        if(obj == this) {
            return true;
        }
        if(!(obj instanceof MealfeeDetail)) {
            return false;
        }

        MealfeeDetail mealfeeDetail = (MealfeeDetail) obj;
        return new EqualsBuilder().append(this.personNo, mealfeeDetail.getPersonNo())
                 .append(this.workdate, mealfeeDetail.getWorkdate())
                 .isEquals();
    }

    public int hashCode() {
        return new HashCodeBuilder().append(this.personNo).append(this.workdate)
                 .toHashCode();
    }
}


数据库表字段:
create table Mealfee_detail
(
	person_no varchar(32),
	work_date char(8),
	primary key(person_no, work_date)
)


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics