jpa原生sql返回。list<map>
时间: 2023-12-09 15:04:05 浏览: 96
你可以使用JPA原生SQL查询来返回一个List<Map>对象。以下是一个示例代码:
```java
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List;
import java.util.Map;
public class YourRepository {
@PersistenceContext
private EntityManager entityManager;
public List<Map<String, Object>> executeNativeSQL(String sql) {
return entityManager.createNativeQuery(sql)
.unwrap(org.hibernate.query.NativeQuery.class)
.setResultTransformer(org.hibernate.transform.AliasToEntityMapResultTransformer.INSTANCE)
.getResultList();
}
}
```
在你的Repository类中,使用`EntityManager`来执行JPA原生SQL查询。`createNativeQuery`方法创建一个原生SQL查询对象,然后使用`unwrap`方法将其转换为Hibernate的`NativeQuery`对象。接下来,使用`setResultTransformer`方法将查询结果转换为`AliasToEntityMapResultTransformer`,这样查询结果将以Map的形式返回。最后,使用`getResultList`方法执行查询并返回List<Map>对象。
你可以在需要的地方调用`executeNativeSQL`方法,并传入你的原生SQL语句作为参数,它将返回一个List<Map>对象,其中每个Map表示查询结果的一行数据,键是列名,值是对应的值。
阅读全文