Ленивый Hibernate JPA с использованием SOAP - PullRequest
1 голос
/ 28 августа 2009

У меня есть несколько аннотированных, взаимосвязанных POJO, которые я хочу создавать / изменять / искать по SOAP. Я сделал утилиту для быстрой загрузки каждой детали каждого POJO и создания строки XML, чтобы я мог отправить весь график POJO в качестве результата поиска. Несмотря на то, что графики очень малы (менее трех узлов), энергичная загрузка заняла очень много времени (500 мс / узел).

Похоже, что узким местом является стремление заполнить весь график каждого узла. Возможно ли как-то просто ленивая загрузка через SOAP? Какие есть другие альтернативы?

1 Ответ

1 голос
/ 28 августа 2009

Возможна отложенная загрузка через SOAP, но это довольно сложно. И это определенно не будет быстрее: -)

По сути, вам нужно создать прокси для ваших POJO (используя инструментарий байт-кода), которые будут знать, как загрузить полный объект (или его отдельное свойство, если вы хотите опуститься до этого уровня) через SOAP. Если это звучит как повторение того, что делает Hibernate, то это потому, что это так :-) Этот подход имеет смысл только в том случае, когда клиент не может получить доступ к «удаленно-ленивым» свойствам, которые часто и действительно дороги для загрузки с нетерпением.

Другой возможный подход заключается в добавлении параметра «уровень инфляции» к вызовам API SOAP, что-то вроде SELF (только для прямых свойств) / CHILDREN (прямые дочерние элементы) / FULL (полное дерево объектов), что приведет к только свойства для инициализации. Это делегирует ответственность за получение должным образом раздутого объекта клиенту (который, вероятно, знает, с чем ему нужно работать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...