8.1.8 连接字符串

首先:数据表user如下:

create   database  person;

use  person

CREATE   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为子类类名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值