如何在DBUnit中处理双向关系?

时间:2014-01-30 21:02:21

标签: java foreign-keys constraints dbunit

我有两个互相拥有外键的实体。当然,它们必须按特定顺序放入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.");
    }

谢谢!

0 个答案:

没有答案