加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 02:07:54 所属栏目:Java 来源:网络整理
导读:我在 Java中使用Hibernate将类映射到数据库表.我有一个人员表,每个条目有很多宠物,每个宠物都有很多玩具. 我希望能够根据玩具的属性在我的DAO中过滤这些内容;例如,找到所有带有红色玩具的宠物的人,作为List Person.我该如何过滤? 人员类: @Entitypublic cl
我在 Java中使用Hibernate将类映射到数据库表.我有一个人员表,每个条目有很多宠物,每个宠物都有很多玩具.

我希望能够根据玩具的属性在我的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’在这里是冗余的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读