gpt4 book ai didi

java - HQL WHERE 子句,其中条件在哈希集或列表中

转载 作者:行者123 更新时间:2023-11-30 08:51:24 24 4
gpt4 key购买 nike

您好,我正在解决家谱问题。

我有一个 POJO 类 Family

Public class Family {

private int familyId;
private Partners parents;
private HashSet<Person> children;
private HashSet<Family> descendantFamilies;
//getters and setters.
}

public class Person {
private int personId;
private String name;
private Gender gender; //Enum class

//getters and setters.
}

public class Partners {

private person husband;
private person wife;
//getters and setters
}

现在要检查一个人是否有 sibling ,我必须通过家庭检查该人是否是该家庭的 child 之一。我是新来的 hibernate 者。我从来没有通过列表或哈希集搜索过 where 条件。请帮忙。

最佳答案

您好,我会尝试回答您的问题,因为我认为您正在寻找 elements关键词。
您可以通过使用以下 HQL 来检查该人是该家庭的 child 之一的家庭:-

select f 
FROM Family f
WHERE (
:person in elements(f.children)
)

此查询将给出包含此人的家庭作为 child 。语法可能是这样的:-

 String hql = "select f FROM Family f  WHERE (:person in elements(f.children))";
Query query = session.createQuery(hql);
query.setEntity("person",somePersonObject);

此外,我认为您可能已经知道但仍想告诉您何时使用 HashSet 覆盖 equals 和 hashcode 方法很重要。喜欢定义两个person对象应该被认为是相等的。(可能当ids相同时)

关于java - HQL WHERE 子句,其中条件在哈希集或列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30565501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com