Question

Salut, je le sais et testé avant la fusion, il reatta l'objet à la session Empêcher une exception d'initialisation paresseuse lorsque l'objet n'est plus en session.

a.) J'ai donc quelques questions.

Si je paie -> le client (dans une relation unidirectionnelle de plusieurs à un) et je le fais

Paiement Paiement = Payment.Class.cast (Session.Merge (OldPayment));

L'objet client sera-t-il également Rattach en session, ou dois-je faire un autre appel de fusion pour le client.

b.) Que se passe-t-il si le paiement -> Client (relation bidirectionnelle de plusieurs à un). Que se passerait-il que.

c.) Que diriez-vous si j'ai une relation de plus de trois hiérarchies.
Exemple: Hôtel -> Paiement -> Client.

Si je fais un hôtel hôtelier = hôtel.class.cast (session.merge (Unmergehotel)), le paiement et l'objet client seront-ils également fusionnés en session?

Merci

Était-ce utile?

La solution

Il est défini par les options en cascade de vos relations.

  • Si la relation est configurée aux opérations de fusion en cascade, les entités référencées par l'entité fusionnée seront également fusionnées, de sorte que les modifications apportées à ces entités avant la fusion seront propagées à la base de données.
  • Sinon, ces entités seront rechargées à partir de la base de données, donc toutes les modifications apportées à ces entités avant la fusion seront rejetées.
  • Les relations paresseuses non initialisées sont ignorées.

EXCEPRT connexe de la spécification JPA (je suppose Session L'interface offre la même sémantique):

  • Pour toutes les entités, y référencé par les relations de X ayant la valeur de l'élément en cascade cascade=MERGE ou cascade=ALL, Y est fusionné récursivement comme y '. Pour tous ces y référencés par x, x 'est défini pour référence à y'. (Notez que si x est géré, alors x est le même objet que x '.)
  • Si x est une entité fusionnée à x ', avec une référence à une autre entité y, où cascade=MERGEou cascade=ALL n'est pas spécifié, puis la navigation de la même association à partir de x «donne une référence à un objet géré y» avec la même identité persistante que Y.

Le fournisseur de persistance ne doit pas fusionner les champs marqués paresseux qui n'ont pas été récupérés: il doit ignorer de tels champs lors de la fusion.

Voir également:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top