PostgreSQL にいくつかのストアド関数とトリガーがあります。例:
CREATE OR REPLACE FUNCTION log_function() RETURNS TRIGGER AS $logger$
BEGIN
IF (TG_OP = 'DELETE') THEN
INSERT INTO logger SELECT 'D', now(), user, OLD.*;
RETURN OLD;
END IF;
RETURN NULL;
END;
$logger$ LANGUAGE plpgsql;
そしてトリガー:
CREATE TRIGGER logging_trigger
AFTER INSERT OR UPDATE OR DELETE ON some_entity
FOR EACH ROW EXECUTE PROCEDURE log_function();
そして、デプロイするたびにこのコードをインポートしたいと思います。(私は持っています<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
)
plpgsqlなので関数は無理だと思いますが、トリガーならいいと思います。import.sql にトリガーを追加しようとしましたが、org.postgresql.util.PSQLException: ERROR: syntax error at end of input
そして、このコードを Java レベルに移動したくありません。
何か案は?