write down,forget
  • adidaseqt
  • eqtturbored
  • eqtsupport9317
  • eqtsupport
  • 9317adidas
  • adidaseqtboost9317
  • eqtsupport93
  • 9317eqt
  • eqt support 9317 adv
  • support 9317 adv
  • eqtadv
  • eqt9317
  • eqtadv9317
  • support93
  • originalseqt
  • adidas eqt
  • eqt support 9317
  • eqt support
  • eqt adv
  • eqt 9317
  • NHibernate中的识别器(discriminator)

    <Category: Nhibernate> 查看评论

    Nhibernate说明:

    在”一棵对象继承树对应一个表”的策略中,元素是必需的,它声明了表的识别器字段。识别器字段包含标志值,用于告知持久化层应该为某个特定的行创建哪一个子类的实例。只能使用如下受到限制的一些类型:String, Char, Int32, Byte, Int16, Boolean, YesNo, TrueFalse.


    (1) column (可选 – 默认为 class) 识别器字段的名字

    (2) type (可选 – 默认为 String) 一个NHibernate字段类型的名字

    (3) force (可选 – 默认为 false) “强制”NHibernate指定允许的识别器值,就算取得的所有实例都是根类的。

    (4) insert (可选 – 默认为 true) 当识别器是被映射的组件的标识符的一部分时设置为false。

    标识器字段的实际值是根据元素的discriminator-value得来的.

    force属性仅仅是在表包含一些未指定应该映射到哪个持久化类的时候才是有用的。这种情况不是经常会遇到。

    转一下这篇,From:http://ttitfly.javaeye.com/blog/162766
    关键字: hibernate中discriminator
    tbl_user 是一张表。User是它一个po,NormalUser也是它的一个po,NormalUser继承于User,那么将User和NormalUser持久到数据库的tbl_user中,tbl_user是怎么区分的呢?tbl_user中有一个字段type,它是来区分的。

    来看他们的映射文件:

    Java代码


    Java代码

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

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

    本文来自: NHibernate中的识别器(discriminator)

    
    eqt support adidas eqt support 93 primeknit og colorway ba7506 adidas eqt running 93 updated with primeknit construction adidas eqt boost 93 17 white turbo red adidas eqt support 9317 white turbo red adidas eqt support 93 17 adidas eqt support 9317 adidas eqt support 9317 turbo red releases tomorrow adidas originals adidas eqt tactile green pack adidas eqt tactile green pack adidas eqt light green pack womens adidas eqt light green pack coming soon adidas eqt milled leather pack release date adidas originals eqt milled leather pack adidas eqt support ultra boost turbo red white adidas adv support burnt orange grey where to buy the adidas eqt support 9317 turbo red adidas eqt boost 91 16 turbo red adidas eqt support 93 turbo red adidas eqt support 9317 white turbo red available now