Book.java
package db.hibernate.pojo;
public class Book {
private String address;
private BookKey bookKey;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public BookKey getBookKey() {
return bookKey;
}
public void setBookKey(BookKey bookKey) {
this.bookKey = bookKey;
}
}
BookKey.java
package db.hibernate.pojo;
import java.io.Serializable;
public class BookKey implements Serializable{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
BookKey other = (BookKey) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
Book.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" >
<hibernate-mapping>
<class name="db.hibernate.pojo.Book" table="book">
<composite-id name="bookKey" class="db.hibernate.pojo.BookKey">
<key-property name="age" column="age" type="int"></key-property>
<key-property name="name" column="name" type="string"></key-property>
</composite-id>
<property name="address" column="address" type="string"></property>
</class>
</hibernate-mapping>