Я не уверен, но вы удивляетесь, почему не существует SQL, который загружает ваше событие, когда вы делаете:
Event event = (Event) session.load(Event.class, 4L);
На самом деле bean-компонент события, возвращаемый hibernate, не является простым pojo, но обычно это класс, усиленный некоторыми магическими поведениями, которые позволяют выполнять такие вещи, как отложенная загрузка и т. Д. (Проверьте динамические прокси, CGLib / Javassist ...)
Так что я не уверен, но думаю, когда вы звоните:
Event event = (Event) session.load(Event.class, 4L);
Создается только расширенный компонент событий, но SQL-запрос не запускается. Если вы сделаете вызов для нестационарного метода получения, sql, вероятно, будет запущен, потому что у него пока нет значения, возвращаемого для этого метода получения.
Наконец, я думаю, даже когда вы добавляете событие в коллекцию событий этого человека, sql запускать не нужно, поскольку для создания этой ссылки вам нужен только идентификатор события.
Угадай, что? Расширенный bean-объект события, безусловно, уже знает этот идентификатор, поскольку вы указали его при использовании session.load -> расширенный класс инициализируется с id = 4
Это просто предположения, но попробуйте вызвать event.getSomething (), чтобы узнать, прав ли я;)