首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有子查询接口投影的弹簧数据

带有子查询接口投影的弹簧数据
EN

Stack Overflow用户
提问于 2019-10-14 13:19:33
回答 1查看 344关注 0票数 0

我正在开发一个使用和Oracle数据库的项目。我在界面投影方面遇到了spring数据jpa的问题。当我在HQL-Console中尝试查询时,它返回正确的结果,但是当我在请求中使用它时,它返回以下一行:

org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap@2f163567

代码语言:javascript
复制
 //Repository
        @Query(value = "select m.codUseridPstme as codUseridPstme from OCMCharts o" +
                    " join o.ocmUnitsByChartsId u join u.ocmPostsByUnitsId p " +
                    "join p.ocmPostmemsByPostsId m where lower(trim(o.codCodeChrt)) =lower(trim(:chartCode))" +
                    " and p.flgIsmanagerPost=true " +
                    "and p.staPoststatePost='ACTIVE' and m.staMemberstatusPstme='ACTIVE' " +
                    "and u.codUnitcodeUnts in (select u.codUnitcodeUnts  from OCMCharts o " +
                    "join o.ocmUnitsByChartsId u "+
                    "join u.ocmPostsByUnitsId p " +
                    "join p.ocmPostmemsByPostsId m " +
                    "where lower(trim(o.codCodeChrt)) =lower(trim(:chartCode)) and u.staStatusUnts='ACTIVE' and m.codUseridPstme=:userName)")
            List<OCMUserNameDTO> getUnitManagerListByChartCodeAndUnitCodesIn(@Param("chartCode") String chartCode, @Param("userName") String userName);


        //DTO
        public interface OCMUserNameDTO {

            String getCodUseridPstme();

        }

//Console Query 

 select
        ocmpostmem3_.COD_USERID_PSTME as col_0_0_ 
    from
        OCM.OCM_CHARTS ocmcharts0_ 
    inner join
        OCM.OCM_UNITS ocmunitsby1_ 
            on ocmcharts0_.CHARTS_ID=ocmunitsby1_.CHRT_CHARTS_ID 
    inner join
        OCM.OCM_POSTS ocmpostsby2_ 
            on ocmunitsby1_.UNITS_ID=ocmpostsby2_.UNTS_UNITS_ID 
    inner join
        OCM.OCM_POSTMEM ocmpostmem3_ 
            on ocmpostsby2_.POSTS_ID=ocmpostmem3_.POST_POSTS_ID 
    where
        lower(trim(ocmcharts0_.COD_CODE_CHRT))=lower(trim(?)) 
        and ocmpostsby2_.FLG_ISMANAGER_POST=1 
        and ocmpostsby2_.STA_POSTSTATE_POST='ACTIVE' 
        and ocmpostmem3_.STA_MEMBERSTATUS_PSTME='ACTIVE' 
        and (
            ocmunitsby1_.COD_UNITCODE_UNTS in (
                select
                    ocmunitsby5_.COD_UNITCODE_UNTS 
                from
                    OCM.OCM_CHARTS ocmcharts4_ 
                inner join
                    OCM.OCM_UNITS ocmunitsby5_ 
                        on ocmcharts4_.CHARTS_ID=ocmunitsby5_.CHRT_CHARTS_ID 
                inner join
                    OCM.OCM_POSTS ocmpostsby6_ 
                        on ocmunitsby5_.UNITS_ID=ocmpostsby6_.UNTS_UNITS_ID 
                inner join
                    OCM.OCM_POSTMEM ocmpostmem7_ 
                        on ocmpostsby6_.POSTS_ID=ocmpostmem7_.POST_POSTS_ID 
                where
                    lower(trim(ocmcharts4_.COD_CODE_CHRT))=lower(trim(?)) 
                    and ocmunitsby5_.STA_STATUS_UNTS='ACTIVE' 
                    and ocmpostmem7_.COD_USERID_PSTME=?
            )
        )
EN

回答 1

Stack Overflow用户

发布于 2019-10-15 05:08:03

谢谢你的回答。我编写了一个.toString()方法,i wrong.it与返回类型的接口投影发生冲突。

代码语言:javascript
复制
List<OCMUserNameDTO> users = ocmPostmemService.getManagerUsernameOfPersonByChartCodeAndUserName(chartCode, userName);
                return new ResponseEntity<>(users.toString(), HttpStatus.OK);

    //DTO
            public interface OCMUserNameDTO {

                String getCodUseridPstme();

            }

谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58377707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档