我遇到了一些奇怪的问题:
我有一张桌子Constrainable
和一张桌子Attribute
。在Attribute
表中,我使用外键约束指定属于Constrainable
哪个。Attribute
我在表CASCADE ON DELETE
中的该外键约束中添加了一个Attribute
。
现在,如果我想删除也被删除的Attribute
..Constrainable
这不应该发生还是我错了?我正在使用这种方法来做到这一点:
public void remove(IDBObject obj) throws DBException {
if (manager != null) {
IDBObject o = null;
try {
o = manager.getReference(obj.getClass(), obj.getPrimaryKey());
} catch (EntityNotFoundException e) {
throw new DBException("Entity doesnt exist");
}
manager.getTransaction().begin();
manager.remove(o);
manager.getTransaction().commit();
return;
}
throw new DBException("Manager is closed or null");
}
这种行为的原因可能是什么?
DB的更详细的概述:
Constrainable-Table:
| 身份证 |
Attribute-Table
:
| 身份证 | 约束ID | 价值 | <--- 这里是CASCADE ON DELETE
定义