Bonjour, pour m'initier à JTA et au relation OneToMany j'ai tenté de tester l'exemple suivant :

http://www.vogella.de/articles/JavaP....html#jpaintro

Lorsque j'exécute l'exemple, je me retrouve bien avec une entrée dans la table famille et une quarantaine de personnes créées dans la table personne.

Cependant le champ Family_ID de la table personne est toujours initialisé à NULL plutôt qu'avec le numéro de famille créé.

J'ai pu corriger le problème en ajoutant la ligne suivante (en gras) :

Par contre, je ne comprends pas pourquoi je dois ajouter cette ligne. Je me serais attendu à ce que la persistance initialise le champs automatiquement comme semble le laisser croire l'auteur de l'exemple. Est-ce un oubli de ma part?

Merci pour votre aide

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
			assertTrue(q.getResultList().size() == 0);
			Family family = new Family();
			family.setDescription("Family for the Knopfs");
			em.persist(family);
			for (int i = 0; i < 40; i++) {
				Person person = new Person();
				person.setFirstName("Jim_" + i);
				person.setLastName("Knopf_" + i);
				em.persist(person);
				// First we have to persists the job
				// Now persists the new person
				family.getMembers().add(person);
                                person.setFamily(family);
				em.persist(person);
				em.persist(family);
			}