我试图阻止用户不可撤销地删除 Confluence wiki 中的空间。我的第一个快速想法是将spaces
表重命名为allspaces
,添加一个新列deleted
,并创建一个视图spaces
来代替旧表。该视图将仅返回未删除的空格。我创建了三个规则来允许spaces
视图上的 INSERT、UPDATE 和 DELETE。DELETE 规则只是更改deleted
字段,从而将其从视图中删除,但所有数据仍保留在数据库中。
现在的问题是从 PostgreSQLspaces
返回时的 DELETE 语句。DELETE 0
这会导致 Hibernate 跳出并抛出异常,Confluence 崩溃了。
无论如何要让 PostgreSQL 返回行被修改,而不是在 INSTEAD 规则上删除行。