У меня есть контроллер пружины, который вызывает сервисный уровень, и он вызывает слой Fao.Почему диспетчер объектов возвращает мне объект с нулевыми значениями?
1) Я получаю объект User, используя метод find() EntityManager. Он извлекает данные очень хорошо.
2) У каждого пользователя есть одно отношение к объекту школы.
@ManyToOne(fetch = FetchType.LAZY, optional=false)
@JoinColumn(name="SCHOOL_ID", foreignKey = @ForeignKey(name = "FK_USER_SHCOOL"))
private School school;
3) когда я получаю школу от объекта сущности пользователя, hibernate регистрирует мне 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-клиенте, я получаю reall и исправляю данные!
4) НО когда я школа от пользователя entyty:
School s=user.getSchool()
Он возвращает объект School, но есть все значения нулевых.
Почему значения равны нулю? Я смущен. В журнале все хорошо. Hibenate также вводит правильный запрос! Этот запрос возвращает данные, но использование значений диспетчера сущностей является нулевым. Что я могу сделать?
Если я изменю LAZY TO EAGER, ВСЕ РАБОТАЕТ ХОРОШО! НО Я НЕ НРАВИТСЯ OF Если я объединил() существующий школьный объект, он извлекает данные. Я не понимаю, почему?