我有以下代码:
try (DB db = new DB()) {
db.open(cpds);
// Using the metadata to walk down the tree and identify all
// children nodes to the leaf tables.
// First the metadata for the pk of the target table
List<Integer> recordIdList = new ArrayList<Integer>();
recordIdList.add(recordId);
batchInsertDeletePks(recordIdList, db);
List<Integer> pkValues = new ArrayList<Integer>();
pkValues.add(recordId);
prepareChildDeletes(tablemeta_id, pkValues, recordId, db);
ColumnData.delete("RECORD_ID IN (SELECT ID FROM TEMPDELETE)");
noDeleted = RecordData.delete("ID IN (SELECT ID FROM TEMPDELETE)");
TempDelete.deleteAll();
} catch (Exception ex) {
logger.debug(ex.getMessage());
}
TEMPDELETE 具有我需要从 COLUMNDATA 中删除的所有主键。ColumnData.delete 不起作用,RecordData.delete 不起作用并且 TempDelete.deleteAll 不起作用。他们没有例外。数据库是h2-1.4.196
如果我在其中调试跟踪并剪切并粘贴创建的 SQL 并在 sql 解释器中运行该 SQL,则所有查询都可以正常工作。
我看不出我的方法与示例有什么不同?有任何想法吗?