Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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
Java 休眠关系可以';在注释方式上找不到外键_Java_Sql_Spring_Hibernate - Fatal编程技术网

Java 休眠关系可以';在注释方式上找不到外键

Java 休眠关系可以';在注释方式上找不到外键,java,sql,spring,hibernate,Java,Sql,Spring,Hibernate,我不熟悉hibernate尝试精益hibernate关系并拥有两张桌子, 关系是一对多的 create table student( id bigint primary key auto_increment, name varchar(20), student_class_id bigint foreign key references student_class(id) ) create table student_class( id bigint

我不熟悉hibernate尝试精益hibernate关系并拥有两张桌子, 关系是一对多的

  create table student(
    id bigint primary key auto_increment,
    name varchar(20),
    student_class_id bigint foreign key references student_class(id)
  )

  create table student_class(
    id bigint primary key auto_increment,
    name varchar(20)
  )
spring sessionFactory bean已配置packageToScan实体

这是实体类:

@Table(name = "students")
@Entity
public class Student {
    private Integer id;
    private Integer name;
    private StudentClass studentClass;

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(name = "name")
    public Integer getName() {
        return name;
    }

    public void setName(Integer name) {
        this.name = name;
    }

    @OneToOne
    @JoinColumn(name = "student_class_id")
    @Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
    public StudentClass getStudentClass() {
        return studentClass;
    }
    // setter getter
}


@Entity
@Table(name = "student_class")
public class StudentClass {
    private Integer id;
    private String name;
    private Set<Student> students = new HashSet<Student>();

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    @Column(name = "name")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
    @OneToMany(mappedBy = "studentClass", cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
    public Set<Student> getStudents() {
        return students;
    }
    /setter getter
}
我是两个实体的关系似乎是正确的,学生实体使用
studentClass
属性引用
studentClass
实体您的SQL:

create table student(
你们班:

@Table(name = "students")
private Integer name;
这些名字需要匹配。即使是一个字符也会产生很大的不同

SQL中的另一个问题:

name varchar(20),
你们班:

@Table(name = "students")
private Integer name;
类型也需要匹配。我相信你的意思是在课堂上使用字符串而不是整数