`
forestkqq
  • 浏览: 206151 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

SEAM示例dvdstore:鉴别器(discriminator)的应用

    博客分类:
  • Seam
阅读更多

  查看src\src\com\jboss\dvd\seam \Customer.java文件,可以知道这是一个实体类,并且扩展自User类。其中的注解 @DiscriminatorValue("customer") ,确定了 Customer 子类的鉴别器字段的标志值为“ customer ”,即对应数据表中 鉴别器字段的值等于 “customer ”的记录。

  那么,它的鉴别器字段是什么?这需要查看它的父类 User 。定义 鉴别器字段的注解是 @DiscriminatorColumn ,但查看 User.java ,并没有 DiscriminatorColumn 注解。

  我们可以看看 JAVAEE5 的文档的描述,链接地址是:
  http://java.sun.com/javaee/5/docs/api/javax/persistence/DiscriminatorColumn.html

  其中,有一段描述:If the DiscriminatorColumn annotation is missing, and a discriminator column is required, the name of the discriminator column defaults to "DTYPE" and the discriminator type to DiscriminatorType.STRING 。

  即如果不指定DiscriminatorColumn注解,鉴别器字段将默认为DTYPE,类型为STRING。

  我们再打开 dvdstore 数据库看看表 Users ,定义的字段 果真是 DTYPE。

  同样的,
在src\src\com\jboss\dvd\seam \Admin.java 中,定义了@DiscriminatorValue("admin"),意思也就很明显了。

 


请参考:
JBoss Seam从头学到脚之19---dvdstore例子的理解(2)
http://abelzcg.iteye.com/blog/360671

JPA中的实体层次设计(8)
http://dennnis-zane.blog.sohu.com/12519970.html

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics