gpt4 book ai didi

java - 如何按 Hibernate 中实体类的属性的属性进行过滤

转载 作者:搜寻专家 更新时间:2023-11-01 03:49:54 26 4
gpt4 key购买 nike

我在 Java 中使用 Hibernate 将类映射到数据库表。我有一个 Person 表,每个条目都有很多宠物,每个宠物都有很多玩具。

我希望能够根据玩具的属性在我的 DAO 中过滤这些;例如,找到所有拥有红色玩具宠物的人,作为 List<Person> .我该如何过滤?

人类:

@Entity
public class Person {

...
@OneToMany(mappedBy = "person")
private List<Pet> pets;

...
}

宠物类:

@Entity
public class Pet {

...
@OneToMany(mappedBy = "pet")
private List<Toy> toys;

...
}

玩具类:

@Entity
public class Toy {

...
private String colour;

...
}

最佳答案

在这种情况下,我不确定您的意思是“过滤器”,但您始终可以使用 HQL。例如:

select p from Person p 
inner join p.pets as pets
inner join pets.toys as toys
where p.pets.size() > 0
and toys.color = 'red'

也许这里条件 'p.pets.size() > 0' 是多余的,因为内部连接。

关于java - 如何按 Hibernate 中实体类的属性的属性进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31426176/

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