【问题标题】:RESTfull client with JPA entities带有 JPA 实体的 RESTful 客户端
【发布时间】:2014-11-12 17:01:58
【问题描述】:

我将开发一个使用 RESTfull 服务的应用程序,并且我将使用 JPA/Hibernate 作为 ORM。 我使用了这两种技术,但没有在一个应用中使用。

由于客户端没有状态,因此在数据或服务层使用状态完整实体的意义较小。而且还有双向映射。

我认为如果客户端进行更新,JPA 的CASCADE 选项将不起作用,而不是会破坏数据。

所以我的想法是,detach 对象在提供给客户端之前,并且, 如果有更新(PUT)请求,只需传递父对象并仅更新父对象。所以我想我不能使用CASCADE 选项。

当是删除(DELETE)请求时,我必须手动执行CASCADE操作。

我也认为,在实体之间建立关系可能是个问题。

谁能解释一下这种情况? 这种方法正确吗? 在这种情况下是否有最佳实践?

谢谢!

【问题讨论】:

  • 我的想法是,在提供给客户之前分离对象好像你有一个选择;-)

标签: java hibernate rest jpa


【解决方案1】:

不要将您的业务实体混入 Web 层。

我建议将您的业务层与 Web 层分离,创建新的 JAXB 注释实体以从您的 REST 控制器返回。

如果你想让你的工作变得简单,有很多库可以将一个 bean 复制到另一个。例如 Apache BeanUtils.class。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 2013-09-16
    • 2014-05-29
    相关资源
    最近更新 更多