2014-02-27 73 views
0

我有一個應用程序在沒有單元測試的情況下正常工作,但是它是正確的。無法從HSQL檢索記錄,數據庫創建正在運行

我想實現一個本地HSQL DB進行測試。我知道數據庫已創建並且腳本文件已運行,因爲如果出現錯誤,我會收到SQL錯誤。當我嘗試運行測試時,我認爲我輸入了記錄的結果爲0。同樣,這一切都通過瀏覽器進行測試,因此我將展示的Service代碼正在正常工作。此外,這可能是一個不好的測試,但我不是爲了這個。

這裏的測試:

@Autowired 
OfficeService officeServiceImpl; 

@Test 
@Transactional 
public void thatRecordIsSaved() { 
    List <Office> offices = officeServiceImpl.findAll(); 
    Office o = offices.get(0); 
    o.setOfficeName("Test office"); 
    officeServiceImpl.save(o); 
    List<Office> officesAfter = officeServiceImpl.findAll(); 
    Office lastLocation = officesAfter.get(officeServiceImpl.findAll().size() - 1); 
    assertEquals("Test office", lastLocation.getOfficeName()); 
} 

這裏的INSERT語句:

INSERT INTO office0_ (active_indicator, facility_code, office_code, office_name, head_count, lattitude, longitude, lert_indicator, country, addr1, addr2, addr3, city, state_or_province, postal_code, updated_at, created_at) 
VALUES(1, '1','1','xyz','2',1.11111,2.22222,0,'US','fake address', '', '', 'x', 'YZ', '12345', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); 

有沒有錯誤,指示不添加此記錄,並沒有消息表明它被添加爲此事。任何想法發生了什麼?

回答

0

這種問題通常在兩個Java進程實際訪問兩個不同的數據庫時出現。

要避免此問題,請使用連接屬性ifexists=true或替代屬性create=false作爲依賴數據庫預連接的連接。如果數據庫尚不存在,連接嘗試將失敗。

file:數據庫的URL理想情況下應該是絕對URL。相對URL與Java進程的執行點有關,通常指向不同的絕對路徑。