为什么我在MySql上有用户注册错误
我是MySql新手,当我尝试注册一个新用户时,会发生一个错误 sql.SQLSyntaxErrorException:您的sql语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行使用接近“id,roles”(25,“USER”)”值的正确语法 在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)~[mysql-connector-java-8.0.21.jar:8.0.21] RegistrationController.Java `为什么我在MySql上有用户注册错误,mysql,spring,spring-boot,hibernate,spring-mvc,Mysql,Spring,Spring Boot,Hibernate,Spring Mvc,我是MySql新手,当我尝试注册一个新用户时,会发生一个错误 sql.SQLSyntaxErrorException:您的sql语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行使用接近“id,roles”(25,“USER”)”值的正确语法 在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)~[mysql-connector-java-8.0.21.jar:8.0.21] R
User.Java
package com.example.fitter.domain;
import javax.persistence.*;
import java.util.Set;
@Entity
@Table(name = "usr")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String username;
private String password;
private boolean active;
@ElementCollection(targetClass = Role.class, fetch = FetchType.EAGER)
@CollectionTable(name = "userRole", joinColumns = @JoinColumn(name = "user id"))
@Enumerated(EnumType.STRING)
private Set<Role> roles;
public User(){}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
}
package com.example.fitter.domain;
导入javax.persistence.*;
导入java.util.Set;
@实体
@表(name=“usr”)
公共类用户{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私人长id;
私有字符串用户名;
私有字符串密码;
私有布尔活动;
@ElementCollection(targetClass=Role.class,fetch=FetchType.EAGER)
@CollectionTable(name=“userRole”,joinColumns=@JoinColumn(name=“user id”))
@枚举(EnumType.STRING)
私人设定角色;
公共用户(){}
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
公共字符串getUsername(){
返回用户名;
}
public void setUsername(字符串用户名){
this.username=用户名;
}
公共字符串getPassword(){
返回密码;
}
public void setPassword(字符串密码){
this.password=密码;
}
公共布尔isActive(){
主动返回;
}
public void setActive(布尔激活){
这个.active=active;
}
公共集getRoles(){
返回角色;
}
公共无效集合角色(集合角色){
this.roles=角色;
}
}
“这一条似乎错了:
@JoinColumn(name = "user id")
我假设它是表中的user_id,因此应该是:
@JoinColumn(name = "user_id")
这是User.Java中的愚蠢错误,而不是
@CollectionTable(name=“userRole”,joinColumns=@JoinColumn(name=“User id”)
@CollectionTable(name=“user\u role”,joinColumns=@JoinColumn(name=“user\u id”)
在@JoinColumn(name=“user id”)
中,在用户
和id
之间有一个打字错误(空格)。检查这是否不是问题所在。
@JoinColumn(name = "user id")
@JoinColumn(name = "user_id")