【问题标题】:DBUnit issue with persisting the data持久化数据的 DBUnit 问题
【发布时间】:2012-07-27 04:49:26
【问题描述】:

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

我看到了示例并编写了 DBUnit 类,我观察到 read 操作工作正常,但 删除、更新Create 操作根本不工作。
当我们尝试调用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 表中也没有 entry

有什么建议吗?
提前致谢。
乙肝。

【问题讨论】:

    标签: java spring unit-testing junit4 dbunit


    【解决方案1】:

    savepoint = connection.setSavepoint("数据插入db");

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多