Product.java
package com.model;
public class Product {
private int id;
private String name;
private double price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
BookProduct.java
package com.model;
public class BookProduct extends Product{
private String author;
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
WearProduct.java
package com.model;
public class WearProduct extends Product{
private String color;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
Product.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- ORM映射文件 -->
<hibernate-mapping package="com.model">
<class name="Product" table="product" discriminator-value="1">
<id name="id" column="id">
<generator class="native" />
</id>
<property name="name"></property>
<property name="price"></property>
<joined-subclass name="BookProduct" table="bp">
<key column="pId"></key>
<property name="author"></property>
</joined-subclass>
<joined-subclass name="WearProduct" table="wp">
<key column="wId"></key>
<property name="color"></property>
</joined-subclass>
</class>
</hibernate-mapping>
单元测试:
@Test
public void t(){
Session session = HibernateUtil.getInstance().getSession();
session.beginTransaction();
BookProduct b = new BookProduct();
b.setAuthor("sdfsdf");
WearProduct w = new WearProduct();
w.setColor("sdfsdfsdfsf");
session.save(b);
session.save(w);
session.getTransaction().commit();
session.close();
}