现在的位置: 首页 > 综合 > 正文

用hibernate怎么实现一个表中多个字段的联合唯一

2012年08月23日 ⁄ 综合 ⁄ 共 915字 ⁄ 字号 评论关闭
<?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>

    <class name="onlyfun.caterpillar.User" table="user">

        <composite-id>

            <key-property name="name"

                          column="name"

                          type="java.lang.String"/>

            <key-property name="sex"

                          column="sex"

                          type="java.lang.String"/>

        </composite-id>

    </class>

</hibernate-mapping>

并且定义的User类要覆盖equals和hashCode方法

Java code
public boolean equals(Object obj) { if(obj == this) { return true; } if(!(obj instanceof User)) { return false; } User user = (User) obj; return new EqualsBuilder() .append(this.name, user.getName()) .append(this.sex, user.getSex()) .isEquals(); } public int hashCode() { return new HashCodeBuilder() .append(this.name) .append(this.sex) .toHashCode(); }

抱歉!评论已关闭.