I am attempting to accomplish a soft delete with a system using
PostgreSQL, Hibernate, and EJB3(JBoss). I have set up tables with a
column to indicate deleted state. What is the best way to accomplish
this? I have looked into triggers and rules but end up with the same
problem. How can I return to Hibernate that 1 row was effected by the
SQL delete. With a trigger, you must return NULL if you do not want the
action to continue. With a rule, it works fine but the number of rows
effected that is returned is always 0. I has something to do with
command status but I don't can't find an example that works.
My current rule is
CREATE RULE XXXXXX AS ON DELETE TO XXXX_VIEW
DO INSTEAD UPDATE XXXXXX SET DELETED = 1 WHERE OLD.ID = ID;
When you execute a SQL delete, the row is flagged with DELETED=1 but
the returned row count = 0 and Hibernate throws and exception.
Does anyne have a work around for this problem?