Spring约束错误仅在提交时发生

时间:2013-09-30 15:59:10

标签: spring transactions

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

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

如果有人遇到过这个问题,请告诉我

由于

1 个答案:

答案 0 :(得分:0)

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

以下帖子Best practise propagating Unique Violation Exceptions to UI似乎与您的问题非常相关。

希望这有帮助