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

  查看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

你可能感兴趣的:(java,javaee,jboss,jpa,seam)