2017-07-20 39 views
0

已經編寫了使用Sql Server並可以正常工作的測試,但我回過頭來嘗試用H2來加快速度。實體是這樣的:H2架構中的Sql服務器實體未找到

這是對我產生具有對SQL Server逆向工程和我打算使用H2與實體測試
@Entity 
@Table(name="Rules" 
     ,schema="dbo" 
     ,catalog="ABM" 
) 
public class Rules { 
.... 
} 

。 但是我得到:

Caused by: org.h2.jdbc.JdbcSQLException: Schema "ABM" not found; SQL statement: 

與顯示SQL設置爲true我看到:

... from abm.dbo.rules .... 

H2肯定不知道什麼是骨髓移植是。考慮創建一個模式我更新URL到這裏:

spring.datasource.url=jdbc:h2:mem:ABM;INIT=CREATE SCHEMA ABM;AUTO_SERVER=TRUE;USE SCHEMA ABM 

仍然有同樣的問題。我可以使用爲Sql Server創建的實體將目錄設置爲H2中的某些內容嗎?

提前致謝。

回答

0

我如何解決這個問題是實體有目錄和模式,而對於H2,實際上並不存在目錄的概念。目錄基本上只是數據庫,所以我做到了這一點,你可以創建模式:

@Primary 
@Bean(name = "h2soruce") 
public DataSource dataSource() { 
    EmbeddedDatabase build = new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).setName("ABM").addScript("init.sql").build(); 
    return build; 
} 

下init.sql有這個

CREATE SCHEMA IF NOT EXISTS dbo; 

資源發現,在GitHub上:演示彈簧數據jpa- hibernate-h2