1. 创建父类pojo
package com.osnt.entity;
// default package
import java.sql.Timestamp;
/**
* USERS entity. @author XDD
*/
@SuppressWarnings("serial")
public class Users implements java.io.Serializable {
@javax.persistence.Id
public String userId;
public String userName;
public String hdshpCd;
private String userType;
// Constructors
/** default constructor */
public Users() {
}
public void setUserId(String userId){
this.userId = userId;
}
public String getUserId(){
return userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getHdshpCd() {
return hdshpCd;
}
public void setHdshpCd(String hdshpCd) {
this.hdshpCd = hdshpCd;
}
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
}
2.创建子类pojo
public class User extends Users implements java.io.Serializable {
private String rlGrp;
private Timestamp ltstSignTm;
private String userPw;
public User() {
}
public String getRlGrp() {
return rlGrp;
}
public void setRlGrp(String rlGrp) {
this.rlGrp = rlGrp;
}
public Timestamp getLtstSignTm() {
return ltstSignTm;
}
public void setLtstSignTm(Timestamp ltstSignTm) {
this.ltstSignTm = ltstSignTm;
}
public String getUserPw() {
return userPw;
}
public void setUserPw(String userPw) {
this.userPw = userPw;
}
.. 后面追加pojo 配置里面继续编写subclass discriminator-value 最重要是指定标示
3.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 package="com.osnt.entity">
<class name="Users" table="users" discriminator-value="U">
<id name="userId" type="java.lang.String">
<column name="USER_ID" length="36" />
<generator class="uuid"/>
</id>
<!-- 标识列 -->
<discriminator column="USER_TYPE" type="string"/>
<!--父类映射 -->
<property name="userName" type="java.lang.String">
<column name="USER_NAME" length="50">
<comment>用户姓名</comment>
</column>
</property>
<property name="hdshpCd" type="java.lang.String">
<column name="HDSHP_CD" length="3">
<comment>职务代码</comment>
</column>
</property>
<!--子类系统用户 -->
<subclass name="User" discriminator-value="SU">
<property name="rlGrp" type="java.lang.String">
<column name="RL_GRP" length="2000" not-null="true">
<comment>角色组</comment>
</column>
</property>
<property name="ltstSignTm" type="java.sql.Timestamp">
<column name="LTST_SIGN_TM" length="19" not-null="true">
<comment>最近登录时间</comment>
</column>
</property>
<property name="userPw" type="java.lang.String">
<column name="USER_PW" length="100">
<comment>用户密码</comment>
</column>
</property>
</subclass>
<!--子类应急人员映射 -->
<subclass name="EmergencyUser" discriminator-value="EU">
<property name="mainDuty" type="java.lang.String">
<column name="MAIN_DUTY" length="200">
<comment>主要职责</comment>
</column>
</property>
<property name="blngEmcyTeamId" type="java.lang.String">
<column name="BLNG_EMCY_TEAM_ID" length="36">
<comment>所属应急队伍ID</comment>
</column>
</property>
</subclass>
</class>
</hibernate-mapping>