0
spring-batch
을 사용하여 데이터베이스에서 일부 데이터를 가져옵니다. SELECT * FROM...
을 사용하면 결과 집합에 @Entity
클래스 목록이 필요합니다.데이터베이스 테이블에서 엔티티를 자동으로 만드는 방법은 무엇입니까?
하지만 단지 개체의 일부 속성 (열) 가져 오려는 :
@Entity
public class MyEntity {
private int id;
public MyEntity(String a, BigDecimal c, Date d) {
//setter
}
}
결과 :
SELECT DISTINCT ON (a, b) a, c, d
FROM mytable [...]
그러므로 내가 생성자를 만들어 그에 따라 그 가져온 열을 일치
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 ..'또는'DISTINCT ON ON (..) NEW bar..CustomEntity .) FROM ..'? – membersound