【发布时间】:2017-01-16 09:51:48
【问题描述】:
我正在解决我们公司应用程序中的一个错误。该应用程序可以连接到 oracle、sqlServer 和 mysql。当我连接到oracle时,我从oracle中的某些表中删除了所有数据,我仍然可以从oracle中的throse表中查询数据。首先,我认为这是因为hibernate缓存,但是当我连接到sqlserver或mysql时也是这样,我发现数据被删除了。我整天都在处理这个问题。这对我来说真的很难,我必须在接下来的两天内解决这个问题,如果有人可以帮助我,我会的非常感谢!
以下是一些图片和代码: 这些是我用来从数据库中查询数据的代码。
long num = dataService.getAllSum(bean.getDbName(), bean.getTableName());
bean.setIsTableExist(true);
bean.setHasData(num > 0 ? true : false);
这里是函数“getAllSum”的源代码:
@Override
public Long getAllSum(String dbName, String tableName) {
return (long) this.getJdbcTemplate(dbName).queryForInt("select count(ID) from " + tableName);
}
当我使用sqlserver时,我从表“NQ_AbbrNMChange”中删除了所有数据,当我在这里调试时,num是0,这是对的。但是当我使用oracle时,做同样的事情,结果是错误的,num不为0,好像数据没有被删除,但我发现在oracle中确实被删除了。
【问题讨论】:
-
您可能连接到错误的数据库实例?
-
在 oracle 中事务必须手动提交。您是否检查过您是否提交了您在其中进行删除的事务?
-
@sstan:查了很多遍,数据库是对的。
-
@steelshark:首先,我删除了表NQ_AbbrNMChange中的所有数据并提交,然后我调试它,num不是0,但是在oracle中,使用查询sql,我找到了num id 为 0。
标签: java sql-server oracle hibernate