2012-05-14 40 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選項設置上createhibernate.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■當進一步的(或許通過一些加盟),將引發一個異常:

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

我要補充的是,當插入到一個已經存在的Oracle數據庫,代碼運行完美!

我的代碼有什麼問題?我怎樣才能使它工作?

感謝您的幫助!

+1

您是否試圖用數據庫的某個客戶端執行錯誤已打印的查詢?那麼會發生什麼? – Pablo

+0

當我讓Hibernate創建我的表格時,我不知道如何訪問它們並查看裏面的內容。或者什麼是調試的好方法? –

+0

那麼,您必須在某個配置文件中定義瞭如何訪問數據庫的地方:persistence.xml,hibernate.cfg.xml或者可能在服務器中。如果服務器是tomcat,它將在context.xml中。如果您知道如何訪問數據庫,則可以使用oracle客戶端(例如,toad)來檢查它。 – Pablo

回答

0

對我感到羞恥。

錯誤來自我的批處理的目標是從數據庫A讀取數據並將數據寫入數據庫B

爲了測試我的批處理,我設置了兩個內存實例。但是錯誤的複製和粘貼使我創建了兩次相同的實例......並且由於A中有一個CLIENT表和B中的另一個CLIENT表,因此檢索數據時發生錯誤:其中一個表未正確創建!

希望這可以幫助別人!