Простой объект, переносящий данные через границу процесса/уровня (например, тело ответа REST), без каких-либо проблем с поведением или постоянством. Хранится отдельно от объекта, чтобы избежать утечки аннотаций постоянства или ленивой загрузки прокси-серверов через границу API, поэтому изменение схемы БД и изменение контракта API не обязательно должны происходить одновременно.
Пример
publicinterfaceOrderRepositoryextendsJpaRepository {
ListfindByCustomerIdAndStatus(String customerId, OrderStatus status);
@Query("select o from Order o join fetch o.lines where o.id = :id")OptionalfindByIdWithLines(@Param("id") Long id);
}
Итог
Простой объект, переносящий данные через границу процесса/уровня (например,
Что такое DTO и зачем хранить его отдельно от объекта домена/JPA, и… · Sobeso