HibernateException: Trouvé deux représentations de la même collection
Si je enregistrer un objet contenant la liste suivante
@OneToMany(cascade=CascadeType.ALL, mappedBy="taskList")
@OrderColumn(name="position", nullable=false)
public List<Task> tasks = new ArrayList<Task>();
- Je obtenir de l'exception
org.hibernate.HibernateException: Found two representations of same collection
Le code dans le Jeu! contrôleur ressemble à ceci:
TaskList taskList = taskList.findById(taskListId);
taskList.add(position, task);
taskList.save();
Si j'insère taskList.refresh()
avant ce bloc, il fonctionne, mais la position de l'information est perdue (ce qui conduit à d'autres erreurs).
Est-ce une Hibernate bug ou est quelque chose de mal avec mon code?
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que Hibernate ne prend pas en charge la combinaison de
@OneToMany(mappedBy=...)
et@OrderColumn
. SansmappedBy
Hibernate utilise une table de jointure et tout fonctionne comme prévu. Voir explication.Si vous avez besoin de la liste pour être persisté vous pourriez avoir besoin d'annoter votre liste avec @OneToMany pour être en mesure de persister votre entité.
Une autre raison de l'exception "org.mise en veille prolongée.HibernateException: Trouvé deux représentations de la même collection" est dupliqué getters/setters de l'entité.
La même erreur se produit lorsque vous essayez de modifier un associé de la collection d'un objet. par exemple:
Dans un tel cas, il peut être résolu par:
le problème est avec votre adhésion vérifier si vous n'êtes pas fatching toutes les données qui n'est pas dans le tableau