Структура базы данных выглядит следующим образом
В стратегии есть иностранная ключа (таблица сопутствующей таблицы членов), стратегия иностранного ключа_Category (связанная таблица категории) и положение иностранного ключа (Associated Positons Table) в таблице участников
Если страница на стойке регистрации напрямую запрашивает содержимое таблицы Stategy, наше заявление HQL будет написано так
StringHQL = "fromStrategywhereId =: id";
Консоль сообщит об ошибке носа. Это потому, что Hibernate лень загружать по умолчанию. Только когда нам нужно загрузить связанный объект, будет загружен связанный объект. Здесь, когда сессия будет закрыта, сессия будет сообщена.
Так как это решить
Здесь рекомендуется использовать LeftjoinFetch для загрузки объектов вместо изменения ленивой нагрузки по умолчанию в аннотации на срочную нагрузку, что будет очень эффективным.
Заявление выглядит следующим образом
Стратегиисатгиги = (стратегия) sessionFactoryUtil.getSession (). CreateQuery ("fromStrategySleftJoinfetchs.strategycategoryleftjoinfetchs.memberleftjoinfetchs.memberleftjoinfetchs.member.positionsweres.id =: id"). SetInteger ("ID", ID). UniquerSultesult ();Здесь нужно отметить, что, поскольку связанная таблица членов связана с таблицей позиций, ее необходимо загрузить вместе. Еще одна вещь, которую вам нужно отметить, это то, что S.ID здесь должен быть написан так, потому что основное имя каждой таблицы здесь - ID. Если это не указано, система не может быть идентифицирована.
Суммировать
Выше приведено в этой статье, в которой обсуждается срочная проблема загрузки Hibernate (множество иностранных ключевых ассоциаций). Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!