1

我需要一些关于 JPA/Hibernate 继承的说明。

假设我有一个抽象Fruit实体,它由两个AppleOrange实体子类化。此外,我有一个Orangein 数据库实例。

我可以从数据库中检索此实例作为纯文本Fruit并将其转换为Orange吗?

4

2 回答 2

1

那么你可以这样做:

Fruit fruit = dao.get(id, Fruit.class)
if(fruit instanceof Orange)
{
   (Orange) fruit
}

并且在运行时将是适当的类型。但是如果你写一个HQL你可以检查它的运行时类型。如果您很好地完成了继承和映射,这通常是不需要的。

select f from Fruit f where f.class = 'a.b.c.Fruit'
于 2012-09-22T16:47:14.790 回答
0

select f from Fruit f where Treat(f as Orange).somePropetyInOrange=:value

于 2017-10-20T14:42:29.967 回答