bonjour,
j'ai fait un peu le tour des différents post sur ce forum mais aucune d'elle n'a pu résoudre ce problème d'insertion null dans une foreign key.

Mes tables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Enfant (
NUM_CHRONO varchar(20) primary key,
Parent_id  number foreign key(Parent(parent_id) not null)
)
 
Parent(parent_id number primary key)
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
 
@Entity
@Table (name = "TABLE_ENFANT")
public class Enfant implements Serializable {
private static final long serialVersionUID = 1L;
private String mNumChrono;
private Parent mParent;
@Id
@Column(name = "NUM_CHRONO", unique = true, nullable = false, 
precision = ConstantesTables.COL_LENGHT_VINGT_DEUX, scale = 0)
public String getNumChrono() {
	return mNumChrono;
}
 
 
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PARENT_ID", nullable = true, insertable = false, updatable = false)
public Parent getParent() {
	return mParent;
}
}
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
25
26
27
 
@Entity
@Table(name = "TABLE_PARENT")
public class Parent implements java.io.Serializable {
 
	private static final long serialVersionUID = 1L;
 
	private Integer mId;
 
	private List<Enfant> mListeEnfant;
 
 @Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "my_entity_seq_gen")
@SequenceGenerator(name = "my_entity_seq_gen", sequenceName = "SEQ_PARENT")
@Column(name = "PARENT_ID", unique = true, 
nullable = false, precision = ConstantesTables.COL_LENGHT_VINGT_DEUX, scale = 0)
public Integer getId() {
		return mId;
}
 
@OneToMany(mappedBy = "parent")
@JoinColumn(name = "NUM_CHRONO", nullable = false)
public List<Enfant> getListeEnfant() {
		return mListeEnfant;
}
 
}
Mais bizarre, cela m'enregistre un null dans la table enfant dans la colonne parent_id je teste

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
 
public void testSave() {
Parent vPoste = new Parent();
 
 
vParent.setId(1310);
 
Enfant vEnfant = new Enfant();
vEnfant .setNumChrono("A1111112");
vEnfant .setParent(vParent);
 
List<Enfant> vListeEnfant = new ArrayList<Enfant>();
vListeEnfant .add(vEnfant);
vPoste.setListeAvoir(vListeAvoir);
try {
	mMananger.ajoutEnfant(vEnfant);
 
} catch (FtnExceptionTechnique vEx) {
	fail(vEx.getMessage());
	vEx.printStackTrace();
}
 
}
Peut etre que je manque de recul mais je ne comprends pas pourquoi ca me met a null alors que je renseigne bien l'id de l'enfant avant de l'affecter au parent.

Merci à vous