我有一个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。
答案 0 :(得分:0)
savepoint = connection.setSavepoint(“数据插入数据库”);
确保保存点何时提交? 你能把所有相关API代码放在这里吗?