gpt4 book ai didi

JAXB、MOXy、JSR-303、JPA - 解码后禁用 JSR-303 验证?

转载 作者:行者123 更新时间:2023-11-30 23:54:56 31 4
gpt4 key购买 nike

我通过外部服务收到一条 XML 消息,我可以使用 MOXy 作为我的 JAXB 提供程序将其解码为 POJO。我目前能够使用 JPA (Hibernate) 将对象保存到数据库中,并且当遇到无效数据时,JSR-303 验证会按预期工作。

我的挑战是,在持久化之前,我想向 POJO 添加两个字段 - 提交者的用户 ID 和收到记录的日期。添加属性工作正常,一切都按预期持续存在。但是,一旦我将 @NotNull 约束添加到两个附加字段(以保护其他进程对同一表的写入),解码就会失败并出现以下错误:

未编码的 bean 违反了约束:

有没有办法在解码后禁用 JSR-303 检查?我必须在不久的将来创建大量这样的对象,并且为每条需要保留的传入消息设置 2 个不同的对象将不是最佳选择。

此外 - 稍后将必须注入(inject)其他非审计相关信息,因此添加不同的审计解决方案并没有多大帮助。

在此先感谢您的所有帮助!

最佳答案

在 MOXy 中关闭 BV:

 Map<String, BeanValidationMode> props = new HashMap<>();
props.put(JAXBContextProperties.BEAN_VALIDATION_MODE, BeanValidationMode.NONE);
Class[] classes = new Class[] { Customer.class };
JAXBContext jaxbContext = JAXBContext.newInstance(classes, props);

https://wiki.eclipse.org/EclipseLink/Examples/MOXy/BVinJAXB/GettingStarted

关于JAXB、MOXy、JSR-303、JPA - 解码后禁用 JSR-303 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515339/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com