我计划将我的系统分成前端和后端。目前我的应用程序直接与数据库通信,但我想创建一个 Spring Web 服务来代替它。我的问题在于使用 Hibernate 将我的对象映射到数据库表。
我需要我的前端程序与数据库进行持久的最新交互。这再次意味着我必须编写大量 Web 服务端点来处理所有查询和更新。这再次使其休眠映射毫无意义,因为我没有得到任何东西。
我的问题是:是否有一种经过验证且合理的方法(如果可能,通过 SOAP)将休眠映射对象传递到前端,然后提交对这些对象所做的更改?
我计划将我的系统分成前端和后端。目前我的应用程序直接与数据库通信,但我想创建一个 Spring Web 服务来代替它。我的问题在于使用 Hibernate 将我的对象映射到数据库表。
我需要我的前端程序与数据库进行持久的最新交互。这再次意味着我必须编写大量 Web 服务端点来处理所有查询和更新。这再次使其休眠映射毫无意义,因为我没有得到任何东西。
我的问题是:是否有一种经过验证且合理的方法(如果可能,通过 SOAP)将休眠映射对象传递到前端,然后提交对这些对象所做的更改?
简而言之:没有。
在处理完所有的 LazyLoadingExceptions 之后,在不同的应用程序中分离和重新附加 hibernate 管理的对象,如您所想,将导致您想要避免的各种问题,例如并发和锁定问题。这将是一个痛苦的b ***。
您要走的路最终会导致一种体系结构,该体系结构增加了一个额外的间接层,数据对象在业务服务和这些业务服务的客户端之间传输。只有您的业务服务才能直接与数据库对话。显然这很耗时,并且必须尽可能避免。这就是为什么我要求您解释您要解决的问题。
您可以通过 SOAP 或其他序列化机制传递休眠实体,但您应该非常小心延迟加载、集合加载和从会话中分离实体 - 否则您可能最终将所有数据库发送到只需要一个对象或休眠代理的地方另一边不能用。