Java Spring数据jpa无法在db2的本机子查询中传递命名参数
无法在spring数据jpa中的Java Spring数据jpa无法在db2的本机子查询中传递命名参数,java,spring-boot,spring-data-jpa,db2,Java,Spring Boot,Spring Data Jpa,Db2,无法在spring数据jpa中的@namedNativeRequesty中传递命名参数 我的回购协议: @Query(value = "select stat.desc as desc," + " stat.priority as priority," + " (case when sum(activeUser) is null then 0 else sum(activeUser) end) as activeUser," + " (case when su
@namedNativeRequesty
中传递命名参数
我的回购协议:
@Query(value = "select stat.desc as desc," +
" stat.priority as priority," +
" (case when sum(activeUser) is null then 0 else sum(activeUser) end) as activeUser," +
" (case when sum(totalUser) is null then 0 else sum(totalUser) end) as totalUser" +
" from lookup.user stat left outer join" +
" (" +
" select user.role as role, " +
" sum (case when user.STATUS = 'ACTIVE' then 1 else 0 end) as activeUser," +
" count(*) as totalUser," +
" user.group as group" +
" from Ctrl.user user" +
" where user.group =:userGroup " +
" and user.branch_code =:branchCode " +
" group by user.role,user.group" +
" ) as tbl on stat.role = tbl.role and stat.group = tbl.group" +
" where stat.group =:userGroup " +
" group by stat.desc, stat.priority" +
"", nativeQuery = true)
public List<com.cimb.dto.UserStatusSummary> getSummaryReport(@Param(value = "userGroup") String userGroup, @Param(value = "branchCode") String branchCode);
如果我用值硬编码那些命名参数,那么它就工作了
我不能使用jpql
,因为实际查询中有一些子查询,所以我不能使用jpql
编辑更新
经过一些挖掘,我发现,我传递的参数在子查询中,因为JPA
没有子查询概念,它没有注入到命名参数中,从而导致语法错误
现在,如何在JPA
请帮忙 价值观是什么?那么带有文字的版本是什么样子的呢?
branch\u code
和group
列的数据类型是什么?@jenschauder值只是像1233wfee
这样的普通字符串,“TBM”数据类型是varchar
,对于这两个列,为什么有人想关闭此问题信息不足以重现此问题?那么请让我知道。@Jenschauder您好,我已经找到了它不工作的原因,如果您看到我的查询,我在其中有一个子查询,并且我正在向该子查询传递两个参数,因为jpa
没有子查询概念,它未能将这些参数注入子查询,导致DB2错误代码-302
,现在我不知道如何将参数传递给子查询。我对此表示怀疑。JPQL没有子查询,但这将导致另一个错误。这里还有本机查询,因此SQL/JDBC是相关的,这将是一个“有趣”的bug。
DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null, DRIVER=4.25.13