#java #hibernate #jpa
#java #гибернация #jpa
Вопрос:
У меня возникли проблемы с использованием гибернации в модели клиент-сервер.
Я хочу использовать сервер, который управляет подключением к базе данных и выполняет команды гибернации, поэтому сервер должен иметь эксклюзивный доступ к базе данных. Клиент должен получить отображенные объекты от клиента.
Хотя нетрудно передавать объекты клиенту при использовании FetchType.EAGER
в отображении, как использовать FetchType.LAZY
?
Мое исследование было посвящено использованию пользовательских прокси-серверов Hibernate. Это правильный путь?
Например, в моей базе данных есть следующие две таблицы
Таблица персон
| ID | FirstName | LastName | ContactInformation |
|:---|:----------|------------:|:------------------:|
| 1 | Xavier | Tester | 1 |
Таблица контактной информации
| ID | EMail | phone |
|:---|---------------------:|:---------------:|
| 1 | xavier.tester@tst.de | 123456 |
Предполагая, что эти таблицы сопоставлены с Person
классом с помощью ContactInformation FetchType.LAZY
.
Клиент запрашивает пользователя с ID=1
с сервера. Теперь сервер должен отправить объект клиенту, и у клиента должна быть возможность вызова getContactInformation()
, а сервер должен интерпретировать его с использованием функции Hibernate LAZY.
Как это возможно?
Ответ №1:
Итак, я придумал два возможных решения:
- Отсоедините объект на сервере и инициализируйте все отложенные типы. При отправке с клиента на сервер объедините его.
- Создание REST-API
На данный момент я собираюсь использовать решение номер 2