inheritance - Hibernate does not use discriminator in query with InheritanceType.JOINED -
i have following entities:
@entity @table(name = "employee") @inheritance(strategy = inheritancetype.joined) @discriminatorcolumn(name="type")  public class employee {}  @entity @table(name = "regular_employee") @primarykeyjoincolumn(name = "id") @discriminatorvalue("r") public class regularemployee extends employee{}   the problem hibernate not use discriminator value in queries.
select     employee0_.id id1_1_,     employee0_.name name2_1_,     employee0_.type type3_1_,     employee0_1_.pay_per_hour pay_per_1_0_,     case          when employee0_1_.id not null 1          when employee0_.id not null 0      end clazz_      employee employee0_  left outer join     regular_employee employee0_1_          on employee0_.id=employee0_1_.id    shouldn't hibernate use discriminator value in "left jouter join" section? like:
left outer join     regular_employee employee0_1_          on employee0_.type='r' , employee0_.id=employee0_1_.id   i'm guessing bring boost in performance.
thanks, tekin.
the discriminator value not necessary fetch required data when using joined inheritance strategy , left joins. jpa specification doesn't enforce use of discriminator in such case - explained in answer hibernate 4: persisting inheritancetype.joined discriminator column values.
that said, hibernate team seems pretty proud don't need use discriminator value can observed comments hhh-6911.
Comments
Post a Comment