DBUnit持久化数据的问题

时间:2012-07-27 04:49:27

标签: java spring unit-testing junit4 dbunit

我有一个baseDAO,其中包含基本CRUD操作的方法。对于每个操作,我们正在进行getJpaTemplate.xxx()操作。 代码在生产中正常运行,但现在我们必须为UTs图层编写DAO,我们正在使用DBUnit

我看到了示例并编写了DBUnit类,我发现读取操作正常但删除,更新创建操作根本不起作用。
当我们尝试调用DAO.save(object)时,它不会抛出任何异常,它会转到下一行但是当我尝试打开表并看到值时,未插入新行 事务都没有失败,也没有抛出任何异常

我怀疑连接可能存在问题。 作为参考,我附加了getConnection()方法。

protected IDatabaseConnection getConnection() throws Exception { 

 Connection con = dataSource.getConnection(); 
 DatabaseConnection connection = new DatabaseConnection(con); 
 DatabaseConfig config = connection.getConfig(); 
 config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY,new oracleDataTypeFactory()); 
 return connection; 
}

我们在setup ()中调用了另一种方法,用于填充XML文件中的数据,该方法工作正常。仅供参考,我在这里添加代码。

protected void insertData (String xmlDataFilePath) { 
    IDatabaseConnection dbConnection= getConnection(); 
    TransactionOperation.CLEAN_INSERT.execute(dbConnection,getDataSet(xmlDataFilePath));
    connection = jPATransactionManager.getDataSource().getConnection(); 
    connection.setAutoCommit(false); 
    savepoint = connection.setSavepoint("Data inserted in db"); 
    dbConnection.close();
}

我不确定如果没有看到插入数据库中的新行,如何继续进行。
因为我试过了

 getJpaTemplate().save(object);
 getJpaTemplate().load(ClassName.class, object's id);

返回我null,在db表中也没有条目

请问有什么建议吗? 提前谢谢。
JE。

1 个答案:

答案 0 :(得分:0)

  

savepoint = connection.setSavepoint(“数据插入数据库”);

确保保存点何时提交? 你能把所有相关API代码放在这里吗?