使用Spring JPA和Hibernate更新数据库分区上的记录时出错

我在更新Hibernate实体时遇到异常,以下是详细信息-

我创建了如下表分区 --case --case_active --case_inactive

---------------脚本------------

CREATE TABLE user_active ( CHECK (case_state <>'CLOSED') ) INHERITS (case); CREATE TABLE case_inactive ( CHECK (case_state ='CLOSED') ) INHERITS (case); ------------ Update Triggers------------- -- Trigger for - active case (closing) -- Move record from active_case to inactive_case CREATE OR REPLACE FUNCTION active_case_partition_trigger_fn() RETURNS TRIGGER AS $$ BEGIN IF (NEW.case_state = 'CLOSED' ) THEN INSERT INTO case_inactive VALUES (NEW.*); DELETE FROM case_active WHERE case_id = NEW.case_id; --RETURN NULL; END IF; RETURN NEW; END; $$ LANGUAGE plpgsql; CREATE TRIGGER active_case_partition_trigger BEFORE UPDATE ON case_active FOR EACH ROW EXECUTE PROCEDURE active_case_partition_trigger_fn();

-- Trigger for - Inactive case (Reopening) -- Move record from inactive_case to active_case

CREATE OR REPLACE FUNCTION inactive_case_partition_trigger_fn() RETURNS TRIGGER AS $$ BEGIN IF (NEW.case_state <> 'CLOSED') THEN INSERT INTO case_active VALUES (NEW.*); DELETE FROM case_inactive WHERE case_id = NEW.case_id; update movement set active = true where document_id = new.case_id; --RETURN NULL; END IF; RETURN NEW; END; $$ LANGUAGE plpgsql; CREATE TRIGGER inactive_case_partition_trigger BEFORE UPDATE ON case_inactive FOR EACH ROW EXECUTE PROCEDURE inactive_case_partition_trigger_fn();

休眠实体“ Case”(映射到“ case”表)的更新异常-

org.springframework.orm.jpa.JpaOptimisticLockingFailureException:行已由另一个事务更新或删除(或未保存的值映射不正确)

inzhatzi 回答:使用Spring JPA和Hibernate更新数据库分区上的记录时出错

这是相对于级联和类图的,您正在保存一些无法单独保存的对象。

您应该检查级联和类图,但是也可以单独保存它们,例如,第一步是保存User,然后将该用户设置为case对象并保存case。

本文链接:https://www.f2er.com/2453715.html

大家都在问