Чтобы загружать только те данные, которые вам действительно нужны, вам нужно использовать пользовательское предложение select, содержащее только те элементы, которые вы собираетесь использовать для своих DTO. Я знаю, насколько это болезненно, особенно когда речь идет о соединениях, поэтому я создал Blaze-Persistence Entity Views , который позаботится о том, чтобы сделать запрос эффективным.
Вы определяете свой DTO как интерфейс с сопоставлениями с сущностью, используя имя атрибута в качестве сопоставления по умолчанию, это выглядит очень просто и во многом похоже на подмножество сущности, хотя это и не обязательно. Вы можете использовать любое выражение JPQL в качестве отображения для ваших атрибутов DTO.