我可能会遗漏一些明显的东西,但是既然您想找到招聘经理,为什么不将
HiringManager子类作为类传递给
Criteria?
以防万一,有一个特殊的
class属性可用于将查询限制为子类型。从Hibernate参考文档中:
14.9。where子句
…
class在多态持久性的情况下,特殊属性访问实例的鉴别符值。嵌入where子句中的Java类名称将转换为其鉴别值。from Cat cat where cat.class = DomesticCat
您也可以在Criteria API中使用这个特殊的类属性,但是需要做一点改动:您必须使用 鉴别值 作为值。
c.add(Restrictions.eq("class", "HIRING_MANAGER"));与HQL不同,Hibernate似乎没有使用Criteria
API进行转换。我不太喜欢在代码中使用鉴别值的想法,也许还有另一种更简洁的方法,但我不知道。但这有效。



