gpt4 book ai didi

java - 为业务对象复制 jpa 实体好吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:24:07 24 4
gpt4 key购买 nike

我有一个设计/架构问题:

我已经开始开发 Java 网络应用程序。我想到了使用 3 层:持久层(使用 jpa 和 hibernate)、业务层和表示层。我现在的问题是:jpa 实体会制作模型,但我可以或可以将实体用作业务对象吗?

这是一种做法吗?我的常识告诉我不应该,但是我需要将这些实体复制为业务对象吗?

最后,我希望表示层与其他层真正分离。一开始使用 spring mvc 和 jsp 时,我喜欢。如果合适,在某个时候切换到基于 javascript 的应用程序,通过 rest 请求与后端通信。

最佳答案

是的,你可以。在持久性上下文之外,JPA 实体就像简单的 POJO。在业务代码中使用它们是合法的(实际上,正如 JB Nizet 所暗示的,您通常总是在没有 DAO 的情况下在业务层中使用它们)。如果它与实体紧密相关,您甚至可以将业务逻辑添加到您的 JPA bean 中。然而,阅读和理解代码的作用将更加困难。但如果你有理由这样做 - 没有什么违法的。这一切都取决于软件设计实践和您最需要的东西。

当您想要将您的应用更改为基于 REST 的服务时,这并不困难。您将必须更改您当前运行应用程序的 Servlet,以使用 JAX-RS 或其他框架 Servlet 来处理 HTTP 请求REST 方式为您服务。它是在 web.xml 中完成的。然后,您将把您的 html 页面放在远程主机可以访问的任何地方,并使用 Javascript AJAX 或其他方式将它们连接到您的 REST 服务。那你应该照顾好CORS。

关于java - 为业务对象复制 jpa 实体好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19927659/

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