La structure de la base de données est la suivante
Il y a un membre de la clé étrangère_ID (table membre associée) dans la stratégie, une stratégie de clé étrangère_category (table de catégorie associée) et une position de clé étrangère_id (table de positons associée) dans le tableau des membres
Si la page de réception interroge directement le contenu de la table Stategy, notre instruction HQL sera écrite comme celle-ci
StringHql = "FromStrategywhered =: id";
La console rapportera une erreur de nece. En effet, Hibernate est paresseux à charger par défaut. Ce n'est que lorsque nous devons charger l'objet associé que l'objet associé sera chargé. Ici, lorsque la session a été close, la session sera signalée.
Alors comment le résoudre
Ici, il est recommandé d'utiliser leftjoinFetch pour charger des objets au lieu de modifier la charge paresseuse par défaut dans l'annotation en chargement urgent, ce qui sera très efficace.
La déclaration est la suivante
Strategystrategy = (stratégie) sessionfactoryutil.getSession (). CreateQuery ("FromStrategysleftJoinFetchs.strategycategoryleftjoinfetchs.memberleftjoinfetchs.memberleftjoinfetchs.member.Positionwheres.id =: id"). SetInteger ("id", id) .uniquière.Ce que vous devez noter ici est que parce que le tableau des membres associés est associé au tableau des positions, il doit être chargé ensemble. Une autre chose que vous devez noter est que le S.ID ici doit être écrit comme celui-ci parce que le nom de clé principal de chaque tableau ici est ID. S'il n'est pas spécifié, le système ne peut pas être identifié.
Résumer
Ce qui précède concerne cet article discutant du problème de chargement urgent de l'hibernate (Association de clés étrangères multiples). J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!