Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我在MySql上有用户注册错误_Mysql_Spring_Spring Boot_Hibernate_Spring Mvc - Fatal编程技术网

为什么我在MySql上有用户注册错误

为什么我在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

我是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 `

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")