Создать дополнительный конструктор для SimpleAccount
public SimpleAccount(Integer id, String accountNumber, String accountName) {
...
}
и определите свой @Query
следующим образом:
@Query("SELECT new com.example.dto.SimpleAccount(a.id, a.accountNumber, a.accountName) FROM Account a WHERE a.grade = 2")
List<SimpleAccount> findAllAccount(Sort sort);
Если вам нужно вручную преобразовать List<Object[]>
в List<SimpleAccount>
, так что создайте заново новый конструктор
public SimpleAccount(Object[] data) {
this.id = (Integer) data[0];
this.accountNumber = (String) data[1];
...
}
Теперь, когда вы получите List<Object[]>
из базы данных, переберите список и вызовите contstructor:
List<Object[]> accountsList = accountRepository.findAllAccount(Sort.by("accountNumber"));
List<SimpleAccount> simpleAccountList = new ArrayList<>();
for (Object[] obj: accountsList) {
simpleAccountList.add(new SimpleAccount(obj));
}