LINUX.ORG.RU

В хибернейте работало как то так:

SELECT new String(entity.field1) FROM DataEntity entity WHERE entity.uid = :uid

Пишу по памяти.

alchemist ()
Ответ на: комментарий от Tanger

ну то есть надо делать по конструктору на каждый такой случай?

kote ()
Ответ на: комментарий от kote

Можно еще так:

SELECT entity.id, entity.content FROM DataEntity entity WHERE entity.uid = :uid

query.list() вернет List<Object[]>, в котором будут находится запрошенные поля. Что лучше - новый конструктор или парсинг массива - зависит от конкретного случая.

alchemist ()
Ответ на: комментарий от kote

Зависит от данных. Если просто стандартный тип, то у него уже есть конструктор. Если это твой DTO - то надо сделать конструктор.

Вариант с Object[] не очень хороший - метод с запросом и его вызов должны быть на разных уровнях. А при возвращении Object[] не очевидно, что же вернётся в ответе (особенно при плохом названии метода).

Tanger ★★★★★ ()
Ответ на: комментарий от Tanger

Еще вопрос: а null в конструктор своего DTO реально передать?

@Query("select new Image(i.uid, i.minified, null, i.userId) from Image i where i.uid = :uid")

так не заработало

kote ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.