Java SqlExceptionHelper:错误:语法错误(近似位置:“用户”)
我试图启动项目,但我得到了错误。请在下面找到我的密码 在日志中,我将此作为错误:Java SqlExceptionHelper:错误:语法错误(近似位置:“用户”),java,sql,postgresql,Java,Sql,Postgresql,我试图启动项目,但我得到了错误。请在下面找到我的密码 在日志中,我将此作为错误: 2021-05-08 06:13:01.474 INFO 18080 --- [nio-8080-exec-2] c.e.demo.controller.UserController : Handling save users: UserDto(id=null, name=test_name, surname=iva, login=test_login, password=1234567890
2021-05-08 06:13:01.474 INFO 18080 --- [nio-8080-exec-2] c.e.demo.controller.UserController : Handling save users: UserDto(id=null, name=test_name, surname=iva, login=test_login, password=1234567890, email=email@gmail.com)
2021-05-08 06:13:01.529 WARN 18080 --- [nio-8080-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 42601
2021-05-08 06:13:01.529 ERROR 18080 --- [nio-8080-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : Error: syntax error (approximate position: "user")
Position: 13
2021-05-08 06:13:01.548 ERROR 18080 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement] with root cause
我使用以下方法保存在控制器中:
@RestController
@RequestMapping("/users")
@Log
@AllArgsConstructor
@Data
public class UserController {
private final UserService userService;
@PostMapping("/save")
public UserDto saveUsers(@RequestBody UserDto usersDto) throws ValidationException {
log.info("Handling save users: " + usersDto);
return userService.saveUser(usersDto);
}
用户实体:
@Entity
@Table(name = "user")
@Data
@NoArgsConstructo
@AllArgsConstructor
@Builder
public class User {
@Id
@SequenceGenerator(name = "user_id_seq", sequenceName = "user_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id_seq")
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "surname")
private String surname;
@Column(name = "login")
private String login;
@Column (name = "password")
private String password;
@Column (name = "email")
private String email;
}
我的错误是什么?
用户
是Postgres中的保留字。试试别的名字。虽然一个体面的ORM应该引用它来避免人们可能会认为。。。