A estrutura do banco de dados é a seguinte
Existe um membro estrangeiro membro_id (tabela de membros associados) na estratégia, uma chave de chave estrangeira estratégia_category (tabela de categoria associada) e uma chave de chave estrangeira (tabela de positons associada) na tabela de membros
Se a página da recepção consultar diretamente o conteúdo da tabela Stategy, nossa declaração HQL será escrita assim
Stringhql = "FromStrategywhereID =: id";
O console relatará um erro de nariz. Isso ocorre porque o Hibernate está com preguiça de carregar por padrão. Somente quando precisamos carregar o objeto associado, o objeto associado será carregado. Aqui, quando a sessão for fechada, a sessão será relatada.
Então, como resolvê -lo
Aqui é recomendável usar o LeftJoinFetch para carregar objetos em vez de alterar a carga preguiçosa padrão na anotação para o carregamento urgente, que será muito eficiente.
A declaração é a seguinte
StrategyStrategy = (Strategy) sessionFactoryUtil.GetSession (). CreateEquery ("de StrategySleftJoinFetchs.strategycategoryleftJoinFetchs.MemberleftJoinFetchs.MemberleftJoinFetchs.Member.PosioSwheres.id =: Id).O que você precisa observar aqui é que, como a tabela de membros associados está associada à tabela de posições, ela precisa ser carregada juntas. Outra coisa que você precisa observar é que o S.id aqui deve ser escrito assim, porque o nome principal de cada tabela aqui é o ID. Se não for especificado, o sistema não poderá ser identificado.
Resumir
O exposto acima é sobre este artigo discutindo o problema de carregamento urgente do hibernato (associação múltipla de chave estrangeira). Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!