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>