使用Spring Data JPA创建User表时SQL语法错误及插入失败问题
问题根源
user是H2数据库的保留关键字,你用User作为实体类名时,JPA默认会生成名为user的表,直接使用关键字作为表名触发了SQL语法错误,不管是建表还是插入操作都会失败。
解决步骤
在你的User实体类上添加@Table注解,指定一个非关键字的表名(比如users):
@Entity @Table(name = "users") // 显式指定表名,避开关键字 @Data @NoArgsConstructor(access = AccessLevel.PRIVATE, force = true) @RequiredArgsConstructor public class User implements UserDetails{ // 原有代码保持不变 }
验证方式
重启应用后,JPA会自动创建名为users的表,提交注册请求时,插入语句会指向users表,不再触发关键字冲突的语法错误,500问题就能解决。
内容的提问来源于stack exchange,提问作者Pascal Torti
相关产品推荐
相关产品推荐

