gpt4 book ai didi

java - 持久化数据的 DBUnit 问题

转载 作者:行者123 更新时间:2023-11-29 09:12:12 25 4
gpt4 key购买 nike

我有一个 baseDAO,其中包含用于基本 CRUD 操作的方法。对于每个操作,我们都在执行 getJpaTemplate.xxx() 操作。代码在 production 中运行良好,但现在我们必须为 DAO 层编写 UTs,并且我们正在使用 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 表中也没有 entry

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

最佳答案

savepoint = connection.setSavepoint("Data inserted in db");

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

关于java - 持久化数据的 DBUnit 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11681618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com