У меня есть контроллер spring, который вызывает сервисный уровень, и он вызывает уровень Fao.
1) Я получаю объект пользователя, используя метод find() EntityManager-s. Он очень хорошо извлекает данные.
2) Каждый пользователь имеет отношения один ко многим со School Object.
@ManyToOne(fetch = FetchType.LAZY, optional=false)
@JoinColumn(name="SCHOOL_ID", foreignKey = @ForeignKey(name = "FK_USER_SHCOOL"))
private School school;
3) когда я получаю школу из объекта пользовательского объекта, спящий режим регистрирует мне SQL-запрос.
select school0_.id as id1_7_0_, school0_.ADDRESS as ADDRESS2_7_0_, school0_.CITY as CITY3_7_0_,
school0_.DESCRIPTION as DESCRIPT4_7_0_, school0_.EMAIL as EMAIL5_7_0_, school0_.NAME as NAME6_7_0_,
school0_.version as version7_7_0_ from SCHOOL school0_ where school0_.id=2
когда я запускаю этот запрос в SQL Client, я получаю настоящие и правильные данные!
4) НО когда я получаю школу от пользователя:
School s=user.getSchool()
Он возвращает объект School, но все значения равны нулю.
Почему значения равны нулю? Я смущен. В логе все хорошо. Hibenate также регистрирует правильный запрос! Этот запрос возвращает данные, но значения диспетчера сущностей равны нулю. Что я могу сделать?
Если я изменю ЛЕНЬ НА ЖАЖДОСТЬ, ВСЕ РАБОТАЕТ ХОРОШО! НО МНЕ ЭТОГО НЕ НРАВИТСЯ Если я объединяю () существующую школьную сущность, она извлекает данные. Я не понимаю почему?