0

我在服务层使用 spring 事务注释。每当抛出唯一约束异常时,实际异常仅在事务提交期间发生,而不是在我们执行 entity.save 时发生

因此,我无法捕获异常并为唯一约束抛出我的自定义异常(我不想使用 spring 异常转换器功能,因为我需要在异常中设置其他数据)

让我知道是否有人遇到过这个问题

谢谢

4

1 回答 1

0

这对我来说似乎是一种正常的行为。只有当事务针对数据库运行时,才能检测到唯一约束。当您执行 enity.save() 时,您正在使用的 ORM(休眠?)只有在内存中具有具有相同唯一约束的另一个对象时才能检测到唯一约束。

遵循将唯一违规异常传播到 UI 的最佳实践似乎与您的问题非常相关。

希望这可以帮助

于 2013-09-30T20:31:32.070 回答