Я использую spring-batch
для получения некоторых данных из базы данных. Если я использую SELECT * FROM...
мой список результатов - @Entity
классов.Как автоматически создать сущность из таблиц базы данных?
Но я только хочу, чтобы загрузить некоторые атрибуты (столбцы) объекта:
SELECT DISTINCT ON (a, b) a, c, d
FROM mytable [...]
Поэтому я создал конструктор соответственно, что соответствует столбцы неправдоподобные:
@Entity
public class MyEntity {
private int id;
public MyEntity(String a, BigDecimal c, Date d) {
//setter
}
}
Результат:
org.hibernate.engine.jdbc.spi.SqlExceptionHelper
PSQLException: The column id was not found in ResultSet
Это мое определение для читателя:
JpaPagingItemReader<MyEntity> reader = new JpaPagingItemReader<MyEntity>();
JpaNativeQueryProvider<MyEntity> queryProvider = new JpaNativeQueryProvider<>();
queryProvider.setSqlQuery(SQL);
reader.setQueryProvider(queryProvider);
Как я могу автоматически создать объект, если я не получаю содержимое всей строки?
Что такое 'e. *' Здесь? И на каком месте я должен поставить 'DISTINCT ON'? – membersound
ну, ваш вопрос в том, как получить некоторые атрибуты, чтобы не было e. *. RE, отличный, вы можете использовать как DISTINCT (e.username). – Desorder
Я имел в виду: что означает 'e' в вашем примере запроса? Потому что он нигде не определен ... И должен ли я писать 'SELECT NEW bar..CustomEntity (..) DISTINCT ON (..) FROM ..' или' SELECT DISTINCT ON (..) NEW bar..CustomEntity (. .) FROM ..'? – membersound