J'ai une question qui je pense devrait être assez commune mais je ne trouve pas de réponse.hibernate @ManyToMany bidirectionnel désireux aller chercher
J'ai 2 objets: Groupe et utilisateur. Mes cours ressemblent à ceci:
class Group
{
@ManyToMany(fetch = FetchType.EAGER)
List<User> users;
}
class User
{
@ManyToMany(fetch = FetchType.EAGER)
List<Group> groups;
}
Maintenant, lorsque je tente d'obtenir un utilisateur de la base de données, il apporte tous ses groupes et tous les groupes apporter tous ses utilisateurs et ainsi de suite. Enfin, j'obtiens une exception stackoverflow. Comment puis-je résoudre ce problème tout en conservant mon association bidirectionnelle et la possibilité d'atteindre les objets dans les listes?
oui. la même chose arrive. Je peux comprendre que cela a du sens b/c hibernate doit amener tous les objets listés pour chaque liste et c'est une boucle infinie. Ma question est de savoir s'il est possible de limiter la profondeur qu'Hibernate apporte aux objets (quelque chose comme fetch_max_depth mais pour many-to-many). – refaelos
@Rafa En fait, je m'attendrais à ce qu'Hibernate détecte le cycle et fasse le bon choix (mais je n'ai pas pris le temps de le tester). D'autre part, je ne peux pas dire que ce chargement avec impatience les deux côtés d'un plusieurs-à-plusieurs ressemble à une bonne idée. –