2012-05-14 3 views
0

데이터베이스에서 데이터를 읽는 일괄 처리를 테스트하려고합니다.JPA : JPA에서 테이블을 만들었지 만 "열을 찾을 수 없습니다"

내가 같은 엔티티를 가지고 :

@Entity 
@Table(name = "CLIENT") 
public class ClientEntity { 
    @Id 
    @Column(name = "ID") 
    private Long id; 

    @Column(name = "START", nullable = false) 
    @Temporal(TemporalType.DATE) 
    private Date start; 
} 

단위 내 배치를 테스트, 나는 hibernate.hbm2ddl.auto 옵션이 create에 설정되는 동안 hibernate.hbm2ddl.import_files 옵션을 읽기 SQL 스크립트 메모리 데이터베이스 덕분에 데이터를 삽입 :

Insert into CLIENT(ID, START) values (1,'2006-02-01') 
Insert into CLIENT(ID, START) values (2,'2010-02-01') 

테이블에 제대로 생성 된 것을 볼 수 있습니다. (일부 가입 아마도 통해) 내 코드에 더 CLIENT의를 검색 할 때 그러나, 예외가 발생합니다 : exising Oracle 데이터베이스에 연결하는 경우

내가 추가 할 필요가
ERROR - Column "CLIENTENTI0_.START" not found; SQL statement: 
    select cliententi0_.ID as ID1_10_, cliententi0_.START 
     as START2_10_ from CLIENT cliententi0_ [42122-165] 

이 코드는 완벽하게 실행되는!

내 코드에 어떤 문제가 있습니까? 어떻게 작동시킬 수 있습니까?

도움 주셔서 감사합니다.

+1

오류가 인쇄 된 쿼리를 데이터베이스의 일부 클라이언트와 함께 실행하려고 시도 했습니까? 그럼 어떻게 될까요? – Pablo

+0

하이버 네이트가 테이블을 생성하게 할 때, 나는 테이블에 액세스하여 실제로 무엇이 있는지를 알지 못한다. 또는 디버깅을위한 좋은 방법은 무엇입니까? –

+0

글쎄, 당신은 어딘가에 데이터베이스에 접근하는 방법을 정의 했어야합니다. 어떤 설정 파일 : persistence.xml, hibernate.cfg.xml 또는 아마도 서버에 있습니다. 서버가 tomcat이면 context.xml에 있습니다. 데이터베이스에 액세스하는 방법을 알고 있다면 oracle 클라이언트 (예 : 두꺼비)를 사용하여 체크 아웃 할 수 있습니다. – Pablo

답변

0

나에게 너무 수치 스럽다.

내 배치의 목표가 A 데이터베이스에서 데이터를 읽고 데이터베이스 B에 데이터를 쓰고 있다는 사실 때문에 오류가 발생했습니다.

배치를 테스트하려면 두 개의 메모리 인스턴스를 설정해야합니다. 하지만 실수로 복사하여 붙여 넣기를하면 동일한 인스턴스가 두 번 생성됩니다 ... CLIENT 테이블이 A에 있고 CLIENT 테이블이 B에 있기 때문에 데이터를 가져올 때 오류가 발생했습니다. 이러한 테이블 중 하나가 올바르지 않게 생성되었습니다!

다른 사람에게 도움이되기를 바랍니다.

관련 문제