Bonjour,

J'ai deux classes Word et Translation. Ces entités sont reliées par une relation OneToMany (Un mot peut contenir plusieurs traductions, et une traduction appartient à un mot).

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
 
@Entity
@Table(name = "word")
public class Word implements Serializable {
@OneToMany(mappedBy = "word", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
	private List<Translation> translations = new ArrayList<Translation>();
}
 
@Entity
@Table(name = "translation")
public class Translation implements Serializable {
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_word",nullable = false)
	private Word word;
}
Ce que je voudrais, c'est que mes traductions soient insérées lorsque je sauvegarde mon mot (d'où le cascade = CascadeType.ALL).

Pour l'instant je fais comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Translation translation = new Translation();
Word word = new Word();
 
word.getTranslations().add(translation);
translation.setWord(word);
 
em.persist(word)
Cela fonctionne bien mais j'aimerais me passer de l'instruction translation.setWord(word);.

En gros je voudrais qu'il insert ma traduction et qu'il la lie au mot, uniquement en ajoutant la traduction au mot word.getTranslations().add(translation);. Seulement pour l'instant si j'écris uniquement cette instruction, il ne lie pas la traduction à mon mot !

cordialement