querydsl List<Map<String,Object>> JpaQuery
时间: 2023-07-02 19:21:36 浏览: 142
对于使用QueryDSL和JPA的情况,可以通过创建一个JPAQuery对象来实现返回List<Map<String, Object>>的查询。以下是一个示例:
```
QPerson person = QPerson.person;
JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
List<Map<String, Object>> result = queryFactory
.select(Projections.map(person.id, person.name, person.age))
.from(person)
.fetch()
.stream()
.map(row -> row.get(0, Map.class))
.collect(Collectors.toList());
```
在上面的代码中,我们首先使用QPerson类来表示“person”表,然后使用JPAQueryFactory构建查询。在select()方法中,我们使用Projections.map()方法来指定要查询的字段,并将它们映射为一个Map。在from()方法中,我们指定要查询的表。最后,我们使用fetch()方法执行查询,并将结果映射为List<Map<String, Object>>。
在使用Projections.map()方法时,需要注意的是,它只能映射基本类型、字符串、日期等简单类型。如果要映射实体类或其他复杂类型,可以使用Projections.bean()方法或自定义转换器。
希望这可以帮助你使用QueryDSL和JPA查询并返回List<Map<String, Object>>。如果你还有其他问题,可以继续问我。
阅读全文