spring jpa column not found nativequery = true
时间: 2023-11-24 19:08:10 浏览: 45
这个问题可能是由于 JPA 对于数据库表字段名的映射问题导致的。在使用原生 SQL 查询时,JPA 无法自动将查询结果映射到实体类的属性上。
解决这个问题的方法是,手动指定查询结果映射到实体类的属性上,可以使用 @SqlResultSetMapping 注解来定义结果集映射。
示例代码如下:
```java
@SqlResultSetMapping(
name = "UserMapping",
classes = @ConstructorResult(
targetClass = User.class,
columns = {
@ColumnResult(name = "id", type = Long.class),
@ColumnResult(name = "name", type = String.class),
@ColumnResult(name = "age", type = Integer.class)
}
)
)
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@Query(value = "SELECT id, name, age FROM user WHERE id = ?1", nativeQuery = true, resultSetMapping = "UserMapping")
User findUserById(Long id);
}
```
在上面的代码中,我们定义了一个 @SqlResultSetMapping 注解,指定了查询结果映射到 User 实体类的属性上。在 UserRepository 中,我们使用 @Query 注解指定了使用原生 SQL 查询,并且指定了 resultSetMapping 参数为上面定义的 UserMapping。
这样,就可以解决 spring jpa column not found nativequery = true 的问题了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![CHM](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)