【问题标题】:Breeze getValidationErrors not working?微风 getValidationErrors 不起作用?
【发布时间】:2013-06-24 21:16:17
【问题描述】:

当我尝试保存两个相关实体时,Breeze EntityMananger 引发异常。在与服务器发生任何通信之前,客户端会抛出异常。异常中的错误消息是“验证错误”,但是对异常中列出的每个实体调用 EntityAspect.getValidationError() 会返回一个空数组。

下面的截图显示了一个活生生的例子:

问题:是否有其他方法可以查明验证问题到底是什么,或者这是一个错误?

感谢您的宝贵时间!

【问题讨论】:

    标签: breeze


    【解决方案1】:

    我找到了该行为的原因。在重新抛出 saveChanges() 引发的异常之前,在相关实体的 EntityManager 上调用 rejectChanges(),由上面示例中的代码处理。实体的错误状态不会保留在异常对象中,因此在调用 rejectChanges() 后对每个实体调用 getValidationErrors() 会返回一个空数组,因为此时更改已回滚,并且在技术上没有任何错误实体。

    所以,从技术上讲,这不是错误。 Breeze 正在按设计工作。但是,我认为有一个论点是,当 saveChanges() 失败时传递的异常对象应该包含对导致异常的问题的完整且不可变的描述。

    【讨论】:

    • 感谢您的更新,扎克。我没有成功重现这里的问题,这可能是因为我在测试中没有调用 rejectChanges()。
    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多