Hibernate(JPA ) 查询返回只有一个字段,返回类型设置为List,取值报错

问题:Hibernate(JPA ) 查询返回只有一个字段,返回类型设置为List<object []>时,根据需求需要把object数组的第一个值转为Integer类型(查询回来的是Long类型),然后无论用result.get(0).toString()还是result.get(0)[0].toString()都报错,

错误代码:

@Query("select count(t.id) from TxxItem t where  t.invest >= ?2  and t.parentCode like ?1 and t.itemtype like ?3   ")
    public List< Object[]> getCountyYiCount(String parentCode,Double invest ,String category);

这个查询只返回一个字段,正常使用 result.get(0)已经拿到了Object对象,在debug时用result.get(0)可以拿到返回值,是Long,然后需要把值转为Integer类型,result.get(0).toString()、result.get(0)[0].toString()都报错,前者在expression中可以取到值,后者直接报错。

原因:

查询结果表明:如果查询一个字段时返回的数据实际是List<Object>类型,这List<Object[]>不匹配了。

 

如果查询返回多个字段的数据时返回类型则是List<Object[]>

 

解决:

1.查询返回一个字段数据时,返回类型设置为List<Object>

@Query("select count(t.id) from TxxItem t where  t.invest >= ?2  and t.parentCode like ?1 and t.itemtype like ?3   ")
    public List< Object> getCountyYiCount(String parentCode,Double invest ,String category);

2.查询返回多个字段时,返回类型设为List<object []>

    @Query("select t.itemtype, count(t.id) from TxxItem t  where  t.parentCode like ?1 and t.state='1'   group by t.itemtype  ")
    public  List< Object[]> getFaciCount(String parentCode );

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 JPA查询单个字段和多个字段返回类型总结 mybatis 如何查找表里的某一个字段,然后返回它们的结果集list ? Mongo查询list数组中一个字段大于特定条数 Hibernate中关于HQL查询返回List数据的结果集问题 sql查询一个字段中包含逗号","的个数 mysql 同一个表中,查询出一个字段相同,一个字段不同的记录 【Teradata SQL】数据库中查询 一个字段包含另一个字段sql MySQL中设置同一张表中一个字段的值等于另一个字段的值 MySQL数据库一个字段对应多个值得模糊查询和多个字段对应一个模糊查询 mysql 实行模糊查询 一个输入值匹配多个字段和多个输入值匹配一个字段
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM