具有动态查询的 JPA 也是 Hibernate 中的动态(可选)参数

Posted

技术标签:

【中文标题】具有动态查询的 JPA 也是 Hibernate 中的动态(可选)参数【英文标题】:JPA with dyanmic query also dyamic(optinal) paramters in Hibernate 【发布时间】:2016-04-20 06:08:12 【问题描述】:

我是 Hibernate 的新手 这是我的带有多个左连接的 JPA/Hibernate 查询,所以我想知道如何在 JPA 中编写查询。参数是可选的,可以更改一/二/三参数。 我希望 order 可能为 null 或 Animal,dosage,cassete_code 还添加过滤器是 Map 元素。

例如其中 s.study_fk=2 按剂量排序,动物和剂量 =“高”/动物 = 104/器官 =“肝”。

但是这个参数是可选的...

SELECT d.level, s.slide_pk from slideimage s
LEFT JOIN studyanimal a ON s.animal_fk=a.animal_pk
LEFT JOIN study_dosage sd ON a.study_dos_fk=sd.study_dos_pk
LEFT JOIN dosage d ON sd.dosage_fk=d.dosage_pk
where s.study_fk=2 order by d.level;

我被困在这里,请帮助我。 (抱歉英语不好。)

【问题讨论】:

【参考方案1】:

如果您正确编写了实体(@OneToMany 关系),您只需选择***实体本身。

例如

SELECT s FROM SlideImage s
LEFT JOIN s.studyAnimal a
LEFT JOIN a.studyDosage sd
LEFT JOIN sd.dosage d
WHERE s.study = ?1

将生成一组 SlideImage 实体,其中填充了它们的嵌套属性。

【讨论】:

以上是关于具有动态查询的 JPA 也是 Hibernate 中的动态(可选)参数的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate与Jpa的关系,以及使用分页和动态查询

具有任意 AND 子句的动态 spring 数据 jpa 存储库查询

spring Data jpa 一对多关联 动态查询怎么写

Spring Data JPA动态查询(多条件and)

Hibernate检索(上)

Spring Hibernate JPA 联表查询 复杂查询