Использование гибернации в модели клиент-сервер

#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:

Итак, я придумал два возможных решения:

  1. Отсоедините объект на сервере и инициализируйте все отложенные типы. При отправке с клиента на сервер объедините его.
  2. Создание REST-API

На данный момент я собираюсь использовать решение номер 2