<?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方法
<!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(); }
Hibernate复合主键与equals重写
本文介绍了一个使用Hibernate框架实现复合主键的示例,并展示了如何为带有复合主键的User类正确地重写equals和hashCode方法。通过这个例子,读者可以了解到复合主键在Hibernate中的配置方式及equals和hashCode方法的实现细节。
4339

被折叠的 条评论
为什么被折叠?



