具有OneToMany休眠关系条件的JPA查询

马丁·德沃拉塞克(Martin Dvoracek)

我有一个spring boot应用程序,JPA用于访问数据库中的数据。现在,我需要执行一个更复杂的查询,但是我不知道如何进行查询。

在我的存储库界面中,我有一个有效的查询,该查询按用户名选择用户的所有chatThreads:

@Query("SELECT chatThread FROM ChatThread chatThread WHERE (chatThread.userId) = (:id)")
    public List<ChatThread> find(@Param("id") String id);

但是,现在如何调整它,以仅选择尚未阅读的消息?存在一个hibernate OneToMany relationship,该方案如下所示:在此处输入图片说明

海因愚蠢

基于您的评论,并假设您对一对多关系ChatThreadList<Message> messages,你的JPQL查询应该是这样的:

SELECT chatThread FROM ChatThread chatThread WHERE (chatThread.userId) = (:id) AND NOT EXISTS (SELECT message FROM chatThread.messages message WHERE message.read = TRUE)

如果您不使用布尔值到整数的转换,则可能需要更改message.read的条件,例如message.read = 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有OneToMany关系的休眠重复项

具有 oneToMany 关系的实体的休眠查询(在 select 语句中使用子查询)

查询具有@ManyToMany关系的表(休眠)

带有投影的休眠条件未对@OneToMany映射执行查询

如何创建JPA查询,该查询同时在具有关系OneToMany的主表行和子行中进行搜索

无法使用休眠条件获取OneToMany关系

具有Group By和aliasToBean的休眠条件查询

Java JPA OneToMany关系和查询

使用休眠条件查询ManyToMany关系

具有 AND/OR 组合的休眠条件

休眠:具有集合的条件

Spring Boot JPA-不包含具有OneToMany关系的嵌套对象的JSON

无法使用Hibernate删除具有@OneToMany关系的父JPA实体

具有OneToMany和ManyToOne外键类型关系的JPA Hibernate空指针异常

带有休眠@OneToMany关系映射的Spring MVC

具有多个关系的表的休眠标准

Hibernate具有OneToMany关系的奇怪行为

通过具有ManyToOne关系的实体上的休眠投影,在SQL查询上使用较少的列

如何更新@OneToMany休眠关系

带有列表字段中元素条件的 Hibernate/JPA 查询(引用为 OneToMany)

如何在具有复杂 Where 条件的 Spring Boot JPA 中加入 OneToMany?

在OneToMany关系上进行jpa jpql查询

通过OneToMany关系中的集合属性过滤的JPA查询

Spring Data JPA(休眠)与动态条件的一对多关系

Eclipselink JPA onetomany关系

JPA Hibernate OneToMany关系

JPA 休眠 @OneToMany 重复的列名

将具有collection.size的休眠HQL转换为条件查询

具有动态OR限制的休眠条件