我作为一个初学者已经开始了一个Spring Rest项目。我的大多数实体都具有15-20个以上的属性,并且UI层上并非所有属性都是必需的。
我出于以下原因考虑使用DTO:
我正在考虑使用DTO将多个实体合并在一起,根据角色隐藏/显示某些UI的某些信息,但是当我需要保留细节时,我必须将DTO信息“拆分/复制”回不同的实体。
员工-可以查看下一级经理的绩效评估和评论。经理-可以输入绩效评估的注释,并指明员工的加薪幅度(这在员工的用户界面中未显示),但无法查看员工的当前薪资。HR-
能够查看所有UI的所有详细信息。
我想找出是否有更好的方法来解决此类问题,或者我正在为我的项目指明正确的方向?
参考:http : //www.baeldung.com/entity-to-and-from-dto-for-a-java-spring-
application
我总是使用DTO将我的视图与JPA实体分离。除了列出的3个原因外,我还可以添加以下内容。
@JSONCreator
DTO可以拥有不可变的DTO,它具有一些优点-尽管大多数情况下DTO不在多线程上下文中使用,因此不需要。在我的项目中,我总是使用Lombok生成访问方法,这意味着DTO通常仅包含数据字段(有时输入的DTO具有验证器或实用程序方法)。这使得它们超级易于创建/修改,并且易于与包含逻辑的类区分开。与编写业务逻辑相比,创建DTO无需花费时间,因此进行这种解耦的成本非常低,而且老实说,我相信这样做会使读取代码更容易。
我在这里试图得到两个非常相似的问题的答案: 我是否应该在存储库对象中将实体转换为DTO,并将其返回到服务层? 其中是一个注释类-这似乎是我不应该做的第一件事,因为服务层现在知道了一个非常低级别的对象,它违反了在每一层抽象数据的尝试。 如果我将每个转换为,情况就不是这样了--但是我应该这样做吗? 基本改变: 但这对我来说不是最好的解决办法…我在这里能做什么? 要提到的一件重要事情是,它来自GWT项目
问题内容: 我想避免序列化(在JMS / AMF中),但仍使用JPA / Hibernate保留该字段。 是修改我的朋友?注释和修饰符是否相关? Java规范明确指出,系统服务不会将瞬态字段保存到持久性存储中。但是hibernate是系统服务吗?(我不这样认为) http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.h
问题内容: 我试图在这里得到两个非常相似的问题的答案: 我应该将实体转换为Repository对象内的DTO并将其返回到服务层吗? 要么 从存储库层返回DTO对象可以吗? 现在,我被困在Servlet(服务层)中,例如,尝试从中检索所有对象: 带注释的类在哪里- 这似乎是我不应该做的第一件事,因为服务层现在知道一个非常低级的对象,恕我直言违反了在每一层抽象我的数据的尝试。 如果我将每个实例都转换为
我在Git中有两个主要分支:和。 我的分支的结构如下: 在我执行合并之前,和在提交、和的master中有一个共同的父级 ,我删除了一些文件(比如和)当它们仍然存在于分支中的提交中时,它们不正确。 因此,当我通过创建提交来执行三方合并以加入和时,不再包含foo和bar!Git没有以任何方式通知我他们失踪的消息。 在我看来,因为,和只是在提交之后重新播放,因此和都消失了。 Git合并的这种行为对我来说
问题内容: 我已经了解了Java 和接口之间的区别。从Java 1.5开始,已将其他功能添加到接口,并已调用这些功能以保持向后兼容性。 我的问题是,现在我们有了接口,我们应该一直使用吗?不使用和使用的用例是什么? 问题答案: 两者都有其用途,并且都由java.util.concurrent中的Executor框架支持。Runnable已经存在了更长的时间,但是它仍然在使用并且不被阻止。 可调用程序
问题内容: 从SavedModel Docs中 , SavedModel,TensorFlow模型的通用序列化格式。 和 SavedModel包装了一个TensorFlow Saver。Saver主要用于生成变量检查点。 据我了解,如果有人想使用TensorFlow Serving ,那是必须的。不过,我可以部署Tensorflow模型没有服务服务器:冻结图并将其导出为,和负载图形到会话中使用和创