当我尝试保存两个相关实体时,Breeze EntityMananger 引发异常。在与服务器发生任何通信之前,客户端会抛出异常。异常中的错误消息是“验证错误”,但对异常中列出的每个实体调用 EntityAspect.getValidationError() 会返回一个空数组。
下面的屏幕截图显示了一个实时示例:
问题:是否有其他方法可以找出验证问题到底是什么,或者这是一个错误?
谢谢你的时间!
当我尝试保存两个相关实体时,Breeze EntityMananger 引发异常。在与服务器发生任何通信之前,客户端会抛出异常。异常中的错误消息是“验证错误”,但对异常中列出的每个实体调用 EntityAspect.getValidationError() 会返回一个空数组。
下面的屏幕截图显示了一个实时示例:
问题:是否有其他方法可以找出验证问题到底是什么,或者这是一个错误?
谢谢你的时间!
我找到了行为的原因。在重新抛出 saveChanges() 引发的异常之前,在相关实体的 EntityManager 上调用 rejectChanges(),由上面示例中的代码处理。实体的错误状态不会保留在异常对象中,因此在调用 rejectChanges() 后对每个实体调用 getValidationErrors() 会返回一个空数组,因为此时更改已回滚,并且在技术上没有任何错误实体。
因此,从技术上讲,这不是错误。Breeze 正在按设计工作。但是,我认为有一个论点是,当 saveChanges() 失败时传递的异常对象应该包含对导致异常的问题的完整且不可变的描述。