【发布时间】:2014-10-19 08:04:46
【问题描述】:
我正在创建一个只处理 json 的 JAX-RS Web 服务。我们使用的是 JAX-RS 2.0 和 Netbeans 8。所有 JPA 2.1 实体都有一个用于审计目的的唯一 ID。它不是主键。一个实体可能有其他关联实体的列表。我们需要确保实体和关联列表中的实体都具有相同的唯一 ID。如果存在差异,则审核失败。
我正在尝试找出处理此验证的最佳方法...
我可以尝试使用反射,但这很慢而且很麻烦...
我可以创建一个写拦截器,确定实体的类型,从中获取唯一 ID,然后扫描任何对象列表以确定是否存在差异。我不喜欢这个想法,因为我必须编写代码来验证模型中的每个特定实体,并在模型更改时维护此代码。
我最喜欢的选择是在返回给请求者之前拦截生成的 json。我可以简单地标记字符串并找到唯一的 id 值。如果有任何不同,我会抛出一个异常。这假设正在使用急切加载,这是我能想到的唯一缺点,因为这意味着我们必须始终返回完整的有效负载而不仅仅是实体。对于这个项目,我尝试使用写拦截器,但我发现实体还没有被序列化为 json。所以,我不知道如何在json返回给调用者之前拦截它。
非常感谢您对实现我的目标的最佳选择提出的建议。
感谢您的关注、建议和时间。
迈克
【问题讨论】:
标签: java json jakarta-ee jax-rs