У меня есть отношение наследования объектов с объединенным типом.Hibernate генерирует запрос с неправильным типом @discriminatorvalues подклассов
@Entity
@Table(name = "MSM_SUBSCRIPTION")
@DiscriminatorColumn(name = "SUBSCRIPTIONTYPE", discriminatorType = DiscriminatorType.STRING, length = 100)
class subscription {
}
@DiscriminatorValue("com.xxx.XXXSubscription")
@Table(name = "XXX")
public class XXXSubscription extends Subscription implements Serializable {
}
Когда я пытаюсь использовать именованный запрос, такие как
SELECT s.class AS subscriptiontype,
FROM
Subscription s
Это приводит к следующему запросу
select
case
when s1_.subscriptionId is not null then com.xxx.XXXSubscription
when s.subscriptionId is not null then 'Subscription'
end AS subscriptiontype,
from
MSM_SUBSCRIPTION s
left outer join
XXXSubscription s1_
on s.subscriptionId=s6_.subscriptionId
Который выдает ошибку, как показано ниже.
-ORA-00904: "COM"."xxx"."MMSSUBSCRIPTION": invalid identifier
Как я заметил, нет метки вокруг саза в сгенерированном запросе вручную стреляя этот запрос с помощью тегов по всему DiscriminatorValue «com.xxx.XXXSubscription», запрос работает нормально.
Может кто-то помочь?
на мой взгляд, вам нужно использовать тег @inheritance на суперкласса этот путь подклассы просто нужно @discriminatorvalue («») –