如何在 JPA 存储库中创建使用 listagg 的子查询?

How to create a subquery that uses listagg in JPA repository?

使用 JPA 规范 类 或谓词生成器。如何转换此 WHERE 子句? 我正在使用 oracle 数据库。

WHERE (SELECT listagg(reject_cd,':') within group (order by order_no) as rejectList 
FROM REJECT_TABLE WHERE ID = transactio0_ id group by id) like '%06%'

LISTAGG 函数高度特定于 Oracle,不受 JPQL 支持。但是,您仍然可以在此处使用本机查询,例如

@Query(
    value = "SELECT ... WHERE (SELECT LISTAGG(reject_cd,':') WITHIN GROUP (ORDER BY order_no) AS rejectList FROM REJECT_TABLE WHERE ID = transactio0_ id GROUP BY id) LIKE '%06%'"
    nativeQuery = true)
Collection<SomeEntity> findAllEntitiesNative();

这里的另一个选择可能是找到一种避免需要使用 LISTAGG 的方法。但是,我们需要查看完整的查询以及示例数据才能更好地理解您的要求。