Hibernate @ManyToOne ne fonctionne qu'avec CascadeType.TOUS
Je suis de l'utilisation d'Hibernate 3.3.1 et je voudrais créer une relation entre les personnes et d'une entreprise attribué. Ils doivent être faiblement couplé, mais j'aimerais organiser
pour créer une société par l'intermédiaire de cascade et de ne pas appeler explicitement saveOrUpdate(newCompany).
J'ai défini les entités suivantes:
class Company
{
@Id
Long companyId;
String name;
}
class Person
{
@Id
Long personId;
String name;
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE})
Company company;
}
à l'intérieur de mon dao je suis en train de faire les suivants:
testpers.setCompany (newCompany);
session.saveOrUpdate(testpers);
et j'obtiens une exception
org.mise en veille prolongée.TransientObjectException: références de l'objet sauvegardé
instance éphémère - enregistrer l'instance éphémère avant de tirer la chasse:
consearch.de modèle.de base.Société
Lors de l'annotation avec "cascade = CascadeType.TOUS les" il fonctionne, mais je ne veux pas aussi
ccade Suppression (par exemple, si une Entreprise est enlevé, la personne ne doit pas être enlevé)
Je me demandais que personne n'a eu ce problème avant
Merci d'avance de m'aider.
Shane
OriginalL'auteur Shannon | 2013-08-20
Vous devez vous connecter pour publier un commentaire.
Vous avez probablement besoin d'activer la veille prolongée personnalisé
@Cascade
lors de l'utilisation de la non-JPASession.saveOrUpdate()
méthode.Ajouter
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
ou de l'utilisationSession.persist()
Bienvenue DONC. Si l'une des réponses ci-dessous résout votre problème, vous devez l'accepter (cliquez sur la coche en regard de la réponse appropriée). Qui fait deux choses. Il permet à chacun de connaître votre problème a été résolu, et il donne à la personne qui vous aide de crédit pour les aider. Voir here pour une explication complète
Comment êtes-vous arrivé à cette solution? Est-il décrit dans la documentation hibernate ? Pourriez vous s'il vous plaît à un point de référence où ce problème est décrit en détail, en particulier pourquoi ce qui se passe ? J'ai trouvé ce mkyong.com/hibernate/... mais il n'est pas très à l'est de comprendre, sans chercher à la source hibernate.
est écrire ici (docs.jboss.org/hibernate/annotations/3.5/reference/en/...)
OriginalL'auteur Luca Basso Ricci
je ne ressens pas les mappages sont droit
Définir comme suit maintenant
OriginalL'auteur Ashish Thukral