EJB 3.0(Public Draft)入門記 Java Persistence API Chapter2 その12

id:koichikさんにInheritanceアノテーションのdiscriminationValueについてコメントをいただきました。

ご指摘どおり、2.1.9.1 Abstract Entity Classesのサンプルコード内で使ったInheritanceアノテーションのdiscriminationValueがDDLに反映されないです。おかしいなぁ。コードはPersistent APIのドキュメントに載っていたもので@Inheritanceの箇所は変更を加えていないので間違っていはいないと思うのですが。

@DiscriminatorColumnを明示的に指定しないとhbm2ddlでは認識されないのかなぁとおもって明示的に指定してみましたがエンティティから生成されるDDLにDiscriminatorColumnは含まれませんでした。
仕方ないので@DiscriminatorColumnに指定したカラムをもつ親のテーブルEMPを自分で作成しなおしてみました。それからデータを作り、エンティティを取得するプログラムを動かしてみたのですが、エンティティの取得に@DiscriminatorColumnに指定したカラムは使われませんでした。
実行されたSQLはDiscriminatorのカラムを追加する前と同じく次のとおりでした。

select 
  employee0_.id as id1_1_, 
  employee0_.name as name1_1_,
  employee0_.address_id as address3_1_1_, 
  employee0_1_.salary as salary2_1_, 
  employee0_2_.hourlyWage as hourlyWage3_1_, 
  case 
    when employee0_1_.id is not null then 1 
    when employee0_2_.id is not null then 2 
    when employee0_.id is not null then 0 
  end as clazz_1_, 
  address1_.id as id0_0_, 
  address1_.name as name0_0_ 
from 
  EMP employee0_ 
  left outer join FT_EMP employee0_1_ 
    on employee0_.id=employee0_1_.id 
  left outer join PT_EMP employee0_2_ 
    on employee0_.id=employee0_2_.id 
  left outer join Address address1_ 
    on employee0_.address_id=address1_.id 
where employee0_.id=?

case式のところが変わるのかなぁと思ったのですが特に変化なしです。

Chapter 9 のInheritanceアノテーションの説明部分に次の一文がありました。

For the SINGLE_TABLE mapping strategy, and potentially also for the JOINED strategy, the persistence provider will use a type discriminator column.

potentiallyが怪しい。これって「persistence providerは必ずしもJOINED strategyにdiscriminator columnを使う必要がない」という意味を含んでいるような。
そこでHibernateOracleのドキュメント見てみました。

断言できませんが、HibernateはJoined Subclassのときはdiscriminator columnを使わない(discriminator columnが指定してあっても無視する)、ということでしょうか?
参考までにOracle版のEJBでdiscriminator columnが指定されたJoined SubclassのSQLを見てみたいなー。けど動かす気力なしです。