我正在开发一个使用和Oracle数据库的项目。我在界面投影方面遇到了spring数据jpa的问题。当我在HQL-Console中尝试查询时,它返回正确的结果,但是当我在请求中使用它时,它返回以下一行:
org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap@2f163567
//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=?
)
)发布于 2019-10-15 05:08:03
谢谢你的回答。我编写了一个.toString()方法,i wrong.it与返回类型的接口投影发生冲突。
List<OCMUserNameDTO> users = ocmPostmemService.getManagerUsernameOfPersonByChartCodeAndUserName(chartCode, userName);
return new ResponseEntity<>(users.toString(), HttpStatus.OK);
//DTO
public interface OCMUserNameDTO {
String getCodUseridPstme();
}谢谢!
https://stackoverflow.com/questions/58377707
复制相似问题