【发布时间】:2023-03-19 20:50:01
【问题描述】:
我正在尝试使用 JPA + Hibernate 来调用带有 @Query 注释的 Store 过程
@Query(value = "exec dbo.getUserById :Id", nativeQuery = true)
User findUserById(@Param("Id) Long id);
并将结果映射到关注实体
@Entity
@Table(name = "users_contact")
public class User{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Integer id;
private String userName;
private String value;
}
存储过程只返回 'id' 和 'userName' 列,所以当我调用 findUserById 方法时,Spring 会抛出以下错误
Error : com.microsoft.sqlserver.jdbc.SQLServerException: The column name 'value' is not valid
我猜是因为 Hibernate 尝试在实体中查找“value”属性并映射到“value”属性,但对于此查询,我不需要 value 属性。
项目要求我只使用存储过程访问数据库,所以不能使用 SQL 原生查询。
是否有任何配置可用于指定忽略此属性仅用于调用此存储过程?
【问题讨论】: