В настоящее время я работаю над распределенным приложением, используя следующие компоненты:
1. Уровень: Сервер базы данных -> MySQL 5.5
2. Уровень: Сервер приложений -> Glassfish 3.1.2.2
3. уровень: Автономный Fat-Client -> Java-SE (JRE 6)
Я использую JPA 2.0 (eclipse-link) в качестве поставщика постоянства и в настоящее время передаю bean-компоненты @Entity между 2-м и 3-м уровнями с помощью сериализации. Я использую статическое плетение, чтобы извлечь выгоду из ленивой выборки, поддерживаемой JPA.
Моя проблема в том, что из-за сериализации между 2-м и 3-м уровнями ленивая выборка не будет работать! Это приводит к интенсивному сетевому трафику, поскольку каждая сериализация одного из моих компонентов управления данными требует, чтобы все отношения с другими объектами/таблицами извлекались перед отправкой по сети.
Как я могу извлечь выгоду из ленивой выборки JPA в такой настройке? Есть ли обходной путь без необходимости введения облегченного DTO/DAO (это усложнило бы мой проект)?
Большое спасибо за вашу помощь заранее!