Если вас беспокоит временная стоимость преобразования из чистого JPA-объекта в DTO, не делайте этого.Вот почему.
Распределение объектов действительно медленное, по сравнению со многими другими операциями, но совсем не медленное по сравнению с IO. Я уверен, что ваш JPA-сервис будет собирать что-то из базы данных,Если я прав, то внезапно время, которое вы потратите на выделение нового объекта (и понесенную стоимость GC позже), будет меньше, чем 0,01% времени, которое вы только что потратили на саму операцию БД.
В случае, если выОптимизация для скорости, распределение памяти - это хорошая идея для сокращения, но это далеко не первое, что вы делаете.Это имеет смысл делать только после того, как вы оптимизировали намного более дорогостоящие операции, такие как запросы к БД.
Отказ от ответственности: В некоторых случаях ваш DTO окажется дорогостоящим.Если вам случится использовать ленивую загрузку в ваших объектах JPA, DTO-преобразование, которое вы собираетесь сделать, полностью победит это.Ленивая загрузка позволила бы JPA не извлекать определенные подэлементы вашего графа объектов JPA, но как часть DTO-преобразования вы будете запрашивать «необязательные» данные каждый раз, что, в свою очередь, вернет вас туда, где выначал до начала использования Lazy
.