我需要在hibernate中的多态查询中查询两次吗?

时间:2014-06-14 06:19:21

标签: java hibernate hql

我有一个多态映射:

基础是人,子实体是员工和经理等。

单表策略中的

映射。

我有一个人的身份证,但我不知道它的子类型(员工或经理)。

每个子类型都有自己的字段/列。

如何在一个休眠查询中检索数据?

需要我查询两次(首先获取子类型或歧视列)然后获取详细信息?

1 个答案:

答案 0 :(得分:2)

不,您不需要多次查询。

select p from Person p

将归还所有人。结果将是包含ManagerEmployee个实例的人员列表。

select p from Person p where id = :id

将返回具有给定ID的人。如果恰好是员工,您将获得Employee个实例。如果恰好是经理,您将获得Manager个实例。