【发布时间】:2014-04-23 23:43:36
【问题描述】:
我正在开发一个项目,以从 SOAP Web 服务中检索数据并将其存储在数据库中以供以后使用 JPA 使用。目前,我使用 Spring WS 作为客户端,并使用 JAXB 生成 Web 服务类。
我们的目标是在数据库中忠实地复制这些类(相当大)中包含的所有数据,为此,将 JPA 注释应用于 JAXB 生成的类具有一定的吸引力。从长远来看,这似乎很危险,因为生成的类似乎相当短暂,如果 wsdl 发生变化,我会在重新生成代码时做很多工作来重新应用 jpa 注释。
另一个选项是让我的 web 服务客户端将数据复制到我创建的 JPA 实体中,可能使用工厂模式。这将 JPA 持久性与 WSDL 设计者可能不断变化的突发奇想分离,并且在某种程度上感觉更安全。它也感觉更安全,因为实体类永远不会被构建任务覆盖。
这种情况的最佳做法是什么?显然,过度解耦在意味着大量数据传输对象时不会得到回报,但这种情况是否特殊? JAXB 创建的类是否应该只在 web 服务客户端中使用,并很快被更高级别的应用程序遗忘?
【问题讨论】:
-
听起来您正在从 web 服务中检索大量数据,这意味着其他系统已保留所有信息。您是否需要将其变成一个完整的数据库,或者您可以每次都使用网络服务来获取实体?
-
@isakgilbert 这是一种按查询付费的事情......
标签: java spring web-services jpa jaxb