2017-01-29 7 views
1

だから私は春のブートを使用してアプリケーションを構築してい@ManyToOne、外部キー、またはその両方?

...これは重複質問、または非常に基本的なものでもよいが、私はいくつかの助けを必要とし、私は多くの学生がそう一つのクラスにすることができ、学生とクラスを持っていますこれは多対1です。私が何をしたか、この:

@Entity 
@Data 
public class Eleve implements Serializable{ 

@Id 
@GeneratedValue 
private int idEt; 
private String nomEt; 
private String prenomEt; 
@Column(length=1) 
private String sexe; 
private Date dobEt; 
private String adresseEt; 
private String telEt; 
private String parentName; 
private Date dateInscription; 
private Date dateSortie; 

@ManyToOne 
private Classe classe; 

}

これが働いていると私はeleve表にclasse_id_clを見たが、それはFOREIGN_KEYではありません!この列は任意の値を受け入れることができます。

UPDATE ところで、これは私のapplication.propertiesです:

spring.datasource.url=jdbc:mysql://localhost:3306/spring-boot-edss 
spring.datasource.username=root 
spring.datasource.password= 
spring.datasource.driver-class-name=com.mysql.jdbc.Driver 
spring.jpa.show-sql=true 
spring.jpa.hibernate.ddl-auto=create 
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect 
spring.session.store-type=none 
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 

私はFOREIGN_KEYするflywayDBようなものを使用し、それを強制する必要がありますか?

答えて

0

あなたのManyToOneマッピングに結合列を指定する必要があります。

@ManyToOne 
@JoinColumn(name = "columnname") 
private Classe classe; 

更新

[OK]を、あなたのapplication.propertiesによると、あなたは外部キーconstrainstをサポートしていない方言を使用しています。

適切な設定は次のようになります。

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect 
+0

はい、私はそれを試してみました。それでもまだforeign_key –

+0

ではないので、起動時に自動スキーマの作成を参照していますか?一瞬 –

+0

はい、 'spring.jpa.hibernate.ddl-オート= create' –

関連する問題