2017-11-05 6 views
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; 
} 
} 
+0

なぜあなたはテーブルを作成する必要があると思いますか?何があなたをそう思わせたのですか? –

+0

私はapplication.propertiesにspring.jpa.generate-ddl = trueと書いています。これはデータベースを初期化しませんか? – badral

+1

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-creating-and-dropping-jpa-databases –

答えて

0

また、あなたには、いくつかの問題を抱えていますあなたのManyToMany mappiで2つのジャンクションテーブルを作成する場合を除き、joinカラムの代わりにjoinTableを指定する必要があります

関連する問題