如何将地图集合作为jpa查询返回

时间:2019-05-24 01:17:45

标签: spring-boot-jpa

我有一个问题。当我使用spring数据jpa时,我想让它返回Map Collections,但这是错误的。然后我在互联网上搜索找到了解决方案。流动。

@Transactional(readOnly = true)
public interface GoodsRepository extends JpaRepository<TbGoodsEntity, Integer> {

    @Query(value = "select new map(t.id as id, t.goodsName as goodsName) from  TbGoodsEntity t group by t.goodsName")
    public List<Map<String, Object>> getGoodsNames();// it`s ok,

    @Query(value = "select * from  tb_goods t group by t.goodsName", nativeQuery = true)
    public List<Map<String, Object>> getGoods();//it`s error

}

但是我不认为使用新的地图方法是最好的解决方案,我想问一下是否还有其他解决方案。谢谢。

1 个答案:

答案 0 :(得分:0)

如果使用use“ native”查询,则每行将作为“ List”返回,因为spring没有行转换器。因此您的输出将变为List<List<Object>>

如果尝试以下查询,则应该获得List<Map<String,Object>>

@Query(value = "select t from  tb_goods t group by t.goodsName")
public List<Map<String, Object>> getGoods();

注意:我猜您的数据库列名称是“ goodsName”,所以如果查询正确与否,请勿发表评论。