La estructura de la base de datos es la siguiente
Existe un miembro de Key Exterior (Tabla de miembros asociado) en la estrategia, una estrategia de clave externa_categoría (tabla de categoría asociada) y una posición de clave externa_id (tabla de positones asociadas) en la tabla de miembros
Si la página de recepción consulta directamente el contenido de la tabla estatal, nuestra instrucción HQL se escribirá así
StringHql = "fromStrategyWhereID =: id";
La consola informará un error de visualización. Esto se debe a que Hibernate es flojo de cargarse de forma predeterminada. Solo cuando necesitemos cargar el objeto asociado se cargará el objeto asociado. Aquí, cuando se haya cerrado la sesión, se informará la sesión.
Entonces, como resolverlo
Aquí se recomienda usar LeftJoinFetch para cargar objetos en lugar de cambiar la carga perezosa predeterminada en la anotación a la carga urgente, lo que será muy eficiente.
La declaración es la siguiente
StrategyStrategy = (Strategy) SessionFactoryUtil.getSession (). CreateQuery ("fromtrategysleftjoinfetchs.strategyCategoryftjoinfetchs.memberleftjoinfetchs.memberleftjoinfetchs.member.positionswheres.id =: id"). SetInteger ("id", id) .Uniqueresult ();Lo que debe tener en cuenta aquí es que debido a que la tabla de miembros asociado está asociada con la tabla de posiciones, debe cargarse. Otra cosa que debe tener en cuenta es que el S.ID aquí debe escribirse así porque el nombre clave principal de cada tabla aquí es ID. Si no se especifica, el sistema no se puede identificar.
Resumir
Lo anterior se trata de este artículo que discute el problema de carga urgente de Hibernate (Asociación de Clave Exterior múltiple). Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!