2017-02-24 92 views
0
<dataset> 
<user id="1" created_date='2017-01-01 00:00:00' email="" user_name="root"/> 
</dataset> 

xml以上給我錯誤。問題是我已經爲用戶保留了字。我該如何解決這個問題。任何鏈接?org.postgresql.util.PSQLException:錯誤:在「用戶」處或附近的語法錯誤

我使用的春天開機,春數據JPA,彈簧試驗的DbUnit,DbUnit的,PostgreSQL的

+0

烏拉圭回合表給出全名' user'是一個保留關鍵字,它必須被引用:''user「'。如果您發現不是保留關鍵字的不同名稱,您將會遇到更少的麻煩 –

+0

@a_horse_with_no_name請您介紹如何引用保留字。我嘗試過,但不能<'user' id =「1」created_date ='2017-01-01 00:00:00'email =「」user_name =「root」/>這些工作都沒有「」'' – roki

+1

在SQL你只需使用''user''我不知道你會如何在DbUnit的XML中做到這一點。但是,再次嘗試找到一個不需要引用的名稱。您將節省很多麻煩(DbUnit顯然無法正確處理保留關鍵字僅僅是一個例子) –

回答

0

根據這個論壇https://sourceforge.net/p/dbunit/mailman/message/20643023/它似乎並不像DBUnit的更新

有辦法「報價「表名。但是,您可以配置DatabaseDataSourceConnectionFactoryBean如果你不想重命名出於某種原因表或與傳統數據庫

@Configuration 
public class Custom.... { 

    @Autowired 
    private DataSource dataSource; 

    @Bean 
    public DatabaseConfigBean dbUnitDatabaseConfig() { 
     DatabaseConfigBean dbConfigBean = new DatabaseConfigBean(); 
//  dbConfigBean.setDatatypeFactory(new PostgresqlDataTypeFactory()); 
     dbConfigBean.setQualifiedTableNames(true); 
     return dbConfigBean; 
    } 

    @Bean 
    public DatabaseDataSourceConnectionFactoryBean dbUnitDatabaseConnection() { 
     DatabaseDataSourceConnectionFactoryBean databaseDataSourceConnectionFactoryBean = new DatabaseDataSourceConnectionFactoryBean(dataSource); 
     databaseDataSourceConnectionFactoryBean.setDatabaseConfig(dbUnitDatabaseConfig()); 
     return databaseDataSourceConnectionFactoryBean; 
    } 
} 

工作設置真實qualifiedTableNames後,你應該在XML

<public.user id="1" created_date='2017-01-01 00:00:00' email="[email protected]" password="your password" username="root"/> 
相關問題