bonjour
j'ai 3 entities.
-operation
-number
-keyword
operation peut contenir plusieurs keyword et 1 number
je veux une table d'assos entre les 3 entities, (operation_id,number_id,keyword_id)
j'ai donc mappé mon entities operation de la sorte :
voyez vous un souci dans ce mapping ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 @Entity public class Operation .. @OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.ALL }) @JoinTable(name = "operation_number_keyword", joinColumns = {@JoinColumn(name = "operation_id", nullable = false)}, inverseJoinColumns = {@JoinColumn(name = "keyword_id", nullable = false)}) @Column(unique=false) protected List<Keyword> keyword; @OneToOne(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE }) @JoinTable(name = "operation_number_keyword", joinColumns = { @JoinColumn(name = "operation_id", nullable = false)}, inverseJoinColumns = {@JoinColumn(name = "number_id", nullable = false)}) protected Number number;
j'ai donc au final 3 tables, operation ,number et keyword je dirais de facon classique
et une table d assos avec les 3 clés ( operation_id,number_id,keyword_id)
Lorsque je persiste (.save) mon operation (avec mon operation contenant bien les keyword et le number), j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Caused by: java.sql.SQLException: Field 'keyword_id' doesn't have a default value
une idée ?
merci
Partager