继承映射(多表)

来源:互联网 发布:www.js study.cn 编辑:程序博客网 时间:2024/05/16 05:58

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>

单元测试:

@Testpublic 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();}



原创粉丝点击