09-05
26

Hibernate中discriminator

tbl_user 是一张表。User是它一个po,NormalUser也是它的一个po,NormalUser继承于User,那么将User和NormalUser持久到数据库的tbl_user中,tbl_user是怎么区分的呢?tbl_user中有一个字段type,它是来区分的。

来看他们的映射文件:


Java代码
<class name="com.apidoc.app.user.model.User"    
        table="tbl_user"  
        discriminator-value="2">  
   <id name="id" column="id"><generator class="native" /></id>  
   <discriminator column="type" type="int"/>  

<class name="com.apidoc.app.user.model.User"
         table="tbl_user"
         discriminator-value="2">
    <id name="id" column="id"><generator class="native" /></id>
    <discriminator column="type" type="int"/>


Java代码
<subclass name="com.apidoc.app.user.model.NormalUser"    
            extends="com.apidoc.app.user.model.User"  
            discriminator-value="1">  
  </subclass>  

<subclass name="com.apidoc.app.user.model.NormalUser"
            extends="com.apidoc.app.user.model.User"
            discriminator-value="1">
  </subclass>


当你用User时hibernate就会将tbl_user的type的值置为2,当你用NormalUser时hibernate就会将tbl_user的type的值置为1

这就区分了,而且不用你手动操作


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: discriminator
相关日志:
评论: 0 | 引用: 0 | 查看次数: 543
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭