我需要一些关于 JPA/Hibernate 继承的说明。
假设我有一个抽象Fruit
实体,它由两个Apple
和Orange
实体子类化。此外,我有一个Orange
in 数据库实例。
我可以从数据库中检索此实例作为纯文本Fruit
并将其转换为Orange
吗?
我需要一些关于 JPA/Hibernate 继承的说明。
假设我有一个抽象Fruit
实体,它由两个Apple
和Orange
实体子类化。此外,我有一个Orange
in 数据库实例。
我可以从数据库中检索此实例作为纯文本Fruit
并将其转换为Orange
吗?
那么你可以这样做:
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'
select f from Fruit f where Treat(f as Orange).somePropetyInOrange=:value