【发布时间】:2019-06-07 16:14:19
【问题描述】:
我有以下设置: - spring boot 应用程序发出一个 post 请求,以使用 hibernate 将对象插入到 postgresql 表 TableA 中; - 某个 postgresql 表有一个触发器,该触发器在某些条件下触发一个插入 TableB 的函数; - TableB有2个触发器:第一个使用listen/notify函数在TableB插入后在websocket上发送通知,第二个使用函数插入TableC
问题:如果客户端在 TableA 中的第一次插入成功,他会收到 200 代码,但接下来可能还有另外 2 次插入。 如果在以下任一插入过程中出现问题,客户端会看到 200 代码,但会丢失重要数据。 我的逻辑是这必须被包装成一个全有或全无的事务式实体,但我该怎么做呢?
亲切的问候,
EDIT1:我刚刚做了一个测试,我用@Transactional注释了第一个post请求方法,在接下来的插入过程中,如果遇到任何错误并且没有执行任何插入,客户端会返回500错误代码。很抱歉浪费您的时间。
【问题讨论】:
-
你能不能显示错误什么的
标签: spring postgresql transactions