实体层设计-----表与子类一对多的关系
mysql数据库
CREATE TABLE TItem
(
id varchar(32) not null primary key ,
-- 通过此字段用于区分保存的是 Book还是 DVD category=1代表book category=2代表dvd
category varchar(2) not null ,
name varchar(20) not null ,
manufacturer varchar(20) not null ,
regionCode varchar(2) ,
pageCount int
) ;
java 代码
- package org.beans;
- public class Item {
- private String id;
- private String name;
- private String manufacturer;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getManufacturer() {
- return manufacturer;
- }
- public void setManufacturer(String manufacturer) {
- this.manufacturer = manufacturer;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
java 代码
- package org.beans;
- public class Book extends Item {
- private int pageCount;
- public int getPageCount() {
- return pageCount;
- }
- public void setPageCount(int pageCount) {
- this.pageCount = pageCount;
- }
- }
java 代码
- package org.beans;
- public class Dvd extends Item {
- private String reginCode;
- public String getReginCode() {
- return reginCode;
- }
- public void setReginCode(String reginCode) {
- this.reginCode = reginCode;
- }
- }
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">
- <!--
- Mapping file autogenerated by MyEclipse - Hibernate Tools
- -->
- <hibernate-mapping>
- <class name="org.beans.Titem" table="titem" catalog="mole">
- <id name="id" type="java.lang.String">
- <column name="id" length="32" />
- <generator class="native" />
- </id>
- <discriminator column="category" type="java.lang.string"></discriminator>
- <property name="name" type="java.lang.String">
- <column name="name" length="20" not-null="true" />
- </property>
- <property name="manufacturer" type="java.lang.String">
- <column name="manufacturer" length="20" not-null="true" />
- </property>
- <subclass name="org.beans.Book" discriminator-value="1">
- <property name="pageCount" type="java.lang.int">
- <column name="pageCount" />
- </property>
- </subclass>
- <subclass name="org.beans.Dvd" discriminator-value="2">
- <property name="regionCode" type="java.lang.String">
- <column name="regionCode" length="2" />
- </property>
- </subclass>
- </class>
- </hibernate-mapping>