Nach diesem Forum https://sourceforge.net/p/dbunit/mailman/message/20643023/ es nicht wie DBUnit scheint hat einen Weg zu „Zitat "Der Tabellenname. Aber Sie können DatabaseDataSourceConnectionFactoryBean
konfigurieren, wenn Sie nicht wollen, Tabellen aus irgendeinem Grund benennen oder die Arbeit mit Legacy-Datenbank
@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;
}
}
Nach der Einstellung treu qualifiedTableNames sollten Sie vollen Namen für ur Tabellen in xml
<public.user id="1" created_date='2017-01-01 00:00:00' email="[email protected]" password="your password" username="root"/>
geben ' user' ist ein reserviertes Schlüsselwort, es muss in Anführungszeichen gesetzt werden: '" user "'. Sie werden viel weniger Probleme haben, wenn Sie einen anderen Namen finden, der kein reserviertes Schlüsselwort ist. –
@a_horse_with_no_name könnten Sie bitte zeigen, wie reserviertes Wort zu zitieren ist. Ich habe versucht, aber konnte nicht <'user' id =" 1 "created_date = '2017-01-01 00:00:00' email =" "user_name =" root "/> keine dieser Arbeiten" "'' – roki
In SQL Sie verwenden einfach "user". Ich weiß nicht, wie Sie das in DbUnit's XML machen würden. Aber noch einmal: Versuchen Sie einen Namen zu finden, der nicht zitiert werden muss. Sie werden sich eine Menge Ärger ersparen (DbUnits offensichtliche Unfähigkeit, mit reservierten Keywords richtig umzugehen, ist nur ein Beispiel) –