如何解决o.h.engine.jdbc.spi.SqlExceptionHelper:错误:“”或附近的语法错误
我正在尝试制作用户API,但对于简单的查询却出现了上述错误。请找到我下面的代码。
在日志中,我将其视为错误
Hibernate: Select new UserResponse(u.user_id,u.user_name,u.password) from public."DetailsCompany" u where user_id =?
2020-08-26 20:31:49.078 WARN 26274 --- [nio-7071-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0,SQLState: 42601
2020-08-26 20:31:49.078 ERROR 26274 --- [nio-7071-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: syntax error at or near "("
@Repository
public interface UserRepository extends JpaRepository<UserEntity,Long>{
@Query(value="Select new UserResponse(u.user_id,u.password) from public.\"DetailsCompany\" u where user_id =:id",nativeQuery = true)
public UserResponse findUserById(@Param("id")Integer id);
}
UserResponse.java
package com.company.user.Response;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserResponse{
private Integer userId;
private String userName;
private String password;
}
#As requested Entity Class Details#
#UserEntity.java#
package com.company.user.Entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name="DetailsCompany",schema = "public")
public class UserEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
@Column(name = "user_name")
private String userName;
@Column(name = "password")
private String password;
}
解决方法
您正在将HQL传递给本机查询。将nativeQuery更改为false。
将查询更改为
@Query(value="Select new com.company.user.Response.UserResponse(u.userId,u.userName,u.password) from UserEntity u where u.userId =:id",nativeQuery = false)
,
构造函数名称必须完全限定。尝试使用com.your.package.UserResponse
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。