Java 查找关联集合中至少有一个指定类型实例的实例
我有一个正在工作的现有域,无法基于关联集合中指定类型的至少一个实例限制查询结果 例如: 比如说一个人有一对多的宠物关系。Pet是抽象的,有几个子类,如Bird、Cat、Dog等,并使用表/类层次映射策略进行映射Java 查找关联集合中至少有一个指定类型实例的实例,java,hibernate,hql,Java,Hibernate,Hql,我有一个正在工作的现有域,无法基于关联集合中指定类型的至少一个实例限制查询结果 例如: 比如说一个人有一对多的宠物关系。Pet是抽象的,有几个子类,如Bird、Cat、Dog等,并使用表/类层次映射策略进行映射 如何在hql中编写查询以返回至少有一条关联狗的所有Person实例?由于宠物位于“多”端,它们可能会指向各自的Person实体。这意味着您只需在Pets表中的person不为null的位置选择uniquePerson。由于您使用的是每个类的表层次结构,因此有一个discrimator列,
如何在hql中编写查询以返回至少有一条关联狗的所有Person实例?由于宠物位于“多”端,它们可能会指向各自的Person实体。这意味着您只需在Pets表中的person不为null的位置选择uniquePerson。由于您使用的是每个类的表层次结构,因此有一个discrimator列,因此您可以区分类型,即“.class”
String hql = "select unique(p.person) from Pet p where p.class = ? and p.person is not null"
然后使用位置参数执行查询-即替换?跟狗猫什么的。请注意,我创建了字段名,因此您必须用实际值替换它们