我有两个互相拥有外键的实体。当然,它们必须按特定顺序放入xml数据集中,以便其中一个不了解另一个。 DBunit抛出关于解析第一个约束违规的异常。怎么办呢?这是如此明显的案例,但我找不到任何解决方案!怎么做这么琐碎的事情?毕竟这可能吗?
我正在尝试使用deferStatement来做到这一点,但即使我使用的数据库实现支持它like stated here它也无济于事......
@SuppressWarnings("resource")
public void setupDB() throws DataSetException, DatabaseUnitException, SQLException, IOException {
FlatXmlDataSetBuilder builder = new FlatXmlDataSetBuilder();
builder.setColumnSensing(true);
builder.setCaseSensitiveTableNames(true);
final ApplicationContext appContext = new AnnotationConfigApplicationContext(PropertiesConfiguration.class,
PersistenceConfiguration.class);
DataSource dataSource = appContext.getBean(DataSource.class);
Connection connection = dataSource.getConnection();
Statement deferStatement = connection.createStatement();
deferStatement.execute("SET CONSTRAINTS ALL DEFERRED");
DatabaseConnection databaseConnection = new DatabaseConnection(connection);
InputStream inputStream = new FileInputStream(inFile);
DatabaseOperation.TRANSACTION(DatabaseOperation.CLEAN_INSERT).execute(databaseConnection,
builder.build(inputStream));
log.debug("Database initialized with data from dataset.");
}
谢谢!