0
Springで1対多、多対多の関係を持つ単純なテーブルを作成しようとしましたが、mysqlにテーブルを作成しません。それは何の誤りもなくコンパイルされ、私は理由を知らない。Springブートでmysqlのテーブルが作成されない
エンティティクラスは3つあります。学生、コース、職業。コースと学生は多対多の関係にあります。職業と学生は1対多の関係を持っています。
package com.example.demo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
@Entity
public class Course {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@Column
private String Course;
@ManyToMany
@JoinColumn(name = "student_id")
private Student Student;
public Course() { }
public Course(int id, String course, com.example.demo.Student student) {
super();
this.id = id;
Course = course;
Student = student;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCourse() {
return Course;
}
public void setCourse(String course) {
Course = course;
}
public Student getStudent() {
return Student;
}
public void setStudent(Student student) {
Student = student;
}
}
職業クラス:
package com.example.demo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
@Entity
public class Profession {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@Column
private String Profession;
@OneToMany
@JoinColumn(name="student_id")
private Student Student;
public Profession() {
}
public Profession(int id, String profession, com.example.demo.Student
student) {
super();
this.id = id;
Profession = profession;
Student = student;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getProfession() {
return Profession;
}
public void setProfession(String profession) {
Profession = profession;
}
public Student getStudent() {
return Student;
}
public void setStudent(Student student) {
Student = student;
}
}
Studentクラス:あなたは
spring.jpa.hibernate.ddl-auto = create
このプロパティを設定する必要があり、あなたのapplication.propertiesで
package com.example.demo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import java.util.Set;
import javax.persistence.CascadeType;
@Entity
public class Student {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@Column
private String Student;
@OneToMany(mappedBy = "Profession", cascade = CascadeType.ALL)
Set<Profession> profession;
@ManyToMany(mappedBy = "Course", cascade = CascadeType.ALL)
Set<Course> course;
public Student() {
}
public Student(int id, String student, Set<Profession> profession,
Set<Course> course) {
super();
this.id = id;
Student = student;
this.profession = profession;
this.course = course;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getStudent() {
return Student;
}
public void setStudent(String student) {
Student = student;
}
public Set<Profession> getProfession() {
return profession;
}
public void setProfession(Set<Profession> profession) {
this.profession = profession;
}
public Set<Course> getCourse() {
return course;
}
public void setCourse(Set<Course> course) {
this.course = course;
}
}
なぜあなたはテーブルを作成する必要があると思いますか?何があなたをそう思わせたのですか? –
私はapplication.propertiesにspring.jpa.generate-ddl = trueと書いています。これはデータベースを初期化しませんか? – badral
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-creating-and-dropping-jpa-databases –