Проблема
Я предполагаю, что вы используете JPA для получения ваших данных как объектов, которые могут обрабатываться JAXB.В этом случае объекты JPA могут использовать ленивую загрузку, что означает, что запрос может не реализовать все данные одновременно.Однако по мере того, как реализация JAXB пересекает граф объектов, все больше и больше его заносится в память до тех пор, пока вы не закончите.Один из подходов состоит в том, чтобы вернуть ваши данные в виде блоков и предложить URI, подобный приведенному ниже:
Эти параметры очень хорошо связаны с настройками запроса JPA:
namedQuery.setFirstResult(10);
namedQuery.setMaxResults(100);
Вариант № 2 - Предоставить ссылки для получения дополнительных данных
В качестве альтернативы, вместо включения всех данных, вы можете предоставить ссылки для получения дополнительной информации.Например, вместо:
<purchase-order>
<product id="1">
<name>...</name>
<price>...</price>
...
</product>
<product id="2">
<name>...</name>
<price>...</price>
...
</product>
...
</purchase-order>
Вы можете вернуть следующее, клиент может затем запросить сведения о продуктах, используя предоставленный URI.Вы можете отобразить это в JAXB, используя XmlAdapter.
<purchase-order>
<product>http://www.example.com/products/1</product>
<product>http://www.example.com/products/2</product>
...
</purchase-order>
Для получения дополнительной информации о XmlAdapter см .: