PostgreSQL에 저장된 함수와 트리거가 있습니다. 예. :시작시 PostgreSQL 트리거를 가져옵니다. Hibernate
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 수준으로 옮기고 싶지 않습니다.
아이디어가 있으십니까?
그냥 추가 : 구문 오류는 다음과 같은 이유로 인해 발생했을 수 있습니다. http://stackoverflow.com/questions/4674828/how-to-break-expression-into-more-lines-in-hibernates-import-sql 최대 절전 모드의 MultipleLinesSqlCommandExtractor는 첫 번째 세미콜론 다음에 함수가 완료된 것으로 간주하여 다른 구문 오류가 발생하기 때문에 여러 줄의 구문 분석을 추가하는 것만으로는 충분하지 않습니다. 방아쇠를 추가하면 이런 식으로 작동합니다. – mabi