0

我有个问题。当我使用 spring data 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

}

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

4

1 回答 1

0

如果使用“本机”查询,那么每一行都将作为“列表”返回,因为 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”,所以不要评论查询是否正确。

于 2019-05-24T13:24:18.157 回答