Я использую spring-batch
и JpaPagingItemReader<T>
для чтения БД до @Entity
. Объект правильно указан как аргумент типа T
.JpaPagingItemReader, не создающий объекты объекта
Задача: Возвращаемый результат не относится к типу T
, но массив объектов: Object[]
. Каждый объект в этом массиве представляет собой массив Object[]
, имеющий следующий контент: [firstname, lastname, date]
.
Итак, столбцы базы данных как-то написаны как массивы String, и сущности возвращаются, очевидно, как массив String[]
.
Причиной этого является мой запрос:
SELECT firstname, lastname, min(date) FROM mytable GROUP BY firstname, lastname;
, так что читатель карты в массив строк. Как я могу сопоставить с моим @Entity
, возможно, только заполненными полями, запрошенными в выборе?
Мое определение читателя:
JpaPagingItemReader<MyEntity> reader = new JpaPagingItemReader<>();
reader.setEntityManagerFactory(emf);
reader.setQueryString(QUERY);
@Entity
public class MyEntity {
private String firstname, lastname;
private Date date;
public MyEntity(String firstname, String lastname, Date date) {
this.firstname = firstname;
this.lastname = lastname;
this.date = date;
}
}
Вы можете показать свой боб определение читатель? – ccheneson
Извините, что забыл добавить мой запрос, что, вероятно, является причиной ... – membersound
Разве это не использование JPQL с JpaPagingItemReader? Добавлено определение читателя выше. Из документов: 'Он выполняет JPQL {@link #setQueryString (String)} для получения запрошенных * data.' – membersound