首先:数据表user如下: create database person;use personCREATE TABLE USER ( ID CHAR(32) NOT NULL, DISCRIMINATOR_TYPE VARCHAR(255) NOT NULL, NAME VARCHAR(16) NOT NULL, PASSWORD VARCHAR(16) NOT NULL, POWERUSER_LEVEL INTEGER, POWER_OTHER VARCHAR(255), GUEST_OTHER VARCHAR(255), PRIMARY KEY(ID)) 其次:User类是PowerUser类、GuestUser类的父类,代码如下: //User类代码package com.cn.gz.factory;public class User ...{ private String id; private String name; private String password; public String getId() ...{ return id; } public void setId(String id) ...{ this.id = id; } public String getName() ...{ return name; } public void setName(String name) ...{ this.name = name; } public String getPassword() ...{ return password; } public void setPassword(String password) ...{ this.password = password; }} //PowerUser类代码package com.cn.gz.factory;public class PowerUser extends User ...{ private int level; private String otherOfPower; public int getLevel() ...{ return level; } public void setLevel(int level) ...{ this.level = level; } public String getOtherOfPower() ...{ return otherOfPower; } public void setOtherOfPower(String otherOfPower) ...{ this.otherOfPower = otherOfPower; }} //GuestUser类代码package com.cn.gz.factory;public class GuestUser extends User ...{ private String otherOfGuest; public String getOtherOfGuest() ...{ return otherOfGuest; } public void setOtherOfGuest(String otherOfGuest) ...{ this.otherOfGuest = otherOfGuest; }} 再次:配置映射文件User.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"><!-- Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping> <class name="com.cn.gz.factory.User" table="user" catalog="person" discriminator-value="ParentUser"> <id name="id" type="string" unsaved-value="null"> <column name="ID" length="32" /> <generator class="uuid.hex" /> </id> <discriminator column="DISCRIMINATOR_TYPE" type="string" /> <property name="name" type="string"> <column name="NAME" length="16" not-null="true" /> </property> <property name="password" type="string"> <column name="PASSWORD" length="16" not-null="true" /> </property> <subclass name="com.cn.gz.factory.PowerUser" discriminator-value="POWER"> <property name="level" type="integer" column="POWERUSER_LEVEL" /> <property name="otherOfPower" type="string" column="POWER_OTHER" /> </subclass> <subclass name="com.cn.gz.factory.GuestUser" discriminator-value="GUEST"> <property name="otherOfGuest" type="string" column="GUEST_OTHER" /> </subclass> </class></hibernate-mapping> 总结:一个表的继承映射是通过一个discriminator标识来识别的。父类与子类都要加上discriminator-value属性,用subclass标签指定子类,name为子类类名。