我有一个多态映射:
基础是人,子实体是员工和经理等。
单表策略中的映射。
我有一个人的身份证,但我不知道它的子类型(员工或经理)。
每个子类型都有自己的字段/列。
如何在一个休眠查询中检索数据?
需要我查询两次(首先获取子类型或歧视列)然后获取详细信息?
答案 0 :(得分:2)
不,您不需要多次查询。
select p from Person p
将归还所有人。结果将是包含Manager
和Employee
个实例的人员列表。
select p from Person p where id = :id
将返回具有给定ID的人。如果恰好是员工,您将获得Employee
个实例。如果恰好是经理,您将获得Manager
个实例。