jjzjj

浅析VO、DTO、DO、PO的概念、区别和用处

概念VO(ViewObject):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(DataTransferObject):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(DomainObject):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。PO(PersistentObject):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久

java - DTO 的单元测试

测试getter和setter是否合适和必要?我认为他们没有任何逻辑,他们不能崩溃或抛出任何异常。 最佳答案 您不应该对DTO的getter和setter进行单元测试,除非它们包含一些需要测试的复杂逻辑。 关于java-DTO的单元测试,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5116860/

java - 深度继承对象如何使用ModelMapper?

A.java@Entity@Getter@Setter@Inheritance@JsonTypeInfo(use=JsonTypeInfo.Id.NAME,inclue=JsonTypeInfo.As.PROPERTY,property="type")@JsonSubTypes({@JsonSubTypes.Type(value=AA.class,name="aa"),@JsonSubTypes.Type(value=AB.class,name="ab"),})publicabstractclassA{@Id@GeneratedValueprivateLongid;//jsonigno

java - 最佳实践 - 多层架构和 DTO

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion在阅读了stackoverflow上的一些问答后,我仍然对在我的Web应用程序中正确实现DTO感到困惑。我当前的实现是一个(基于JavaEE的)多层架构(具有持久性、服务和表示层),但具有所有层使用的“通用”包,其中包含(除其他外)域对象。在这种情况下,这些层不能真正被视为独立的。打算一步步去掉commonpackage,但是遇到各种挑战/问题:假设持久层将使用一个类myproject.p

java - 实体和DTO之间的区别

DTO和实体有什么区别?详细来说,这些是我的问题:DTO应包含哪些字段?例如我的实体类是:@EntitypublicclassMyFirstEntityimplementsSerializable{@Id@GeneratedValueprivateLongid;privateStringstringData;@OneToOneprivateMySecondEntitymySecondEntity;@OneToManyprivateListmySecondEntitesList;}@EntitypublicclassMySecondEntityimplementsSerializable

java - JPA 与 DTO 和乐观锁定合并到 RESTful Web 应用程序中?

我的问题是:JPAmerge在无状态Web应用程序中有作用吗?SO上关于JPA中的merge操作的讨论很多。还有一个greatarticleonthesubject这与JPA通过更手动的Do-It-Yourself过程合并形成对比(您通过实体管理器找到实体并进行更改)。我的应用程序有一个丰富的域模型(ala域驱动设计),它使用@Version注释以使用乐观锁定。我们还创建了DTO,作为我们RESTfulWeb服务的一部分通过网络发送。这个DTO层的创建还允许我们向客户端发送它需要的一切,而不是它不需要的。到目前为止,我理解这是一个相当典型的架构。我的问题是关于需要更新(即HTTPPUT

java - JPA : Generating Data Transfer Object DTO from Entity and merging DTO to database 的模式

我正在寻找一种从JPA实体创建数据传输对象(DTO)的好方法,反之亦然。我想将DTO作为JSON发送给客户端,然后接收修改后的DTO并将其保存回数据库。在从JSON解析到它的Java类之后,从EntityManager对接收到的对象执行合并方法是最容易的。例如有下面的Entity和保存修改对象的Rest方法:@Entity@Table(name="CUSTOMER")publicclassCustomer{   @Id   Longid;   @Version   Longversion;   Stringname;   Stringaddress;   Stringlogin;   

java - 在实体、DTO 包上禁用 Sonar 重复

有什么方法可以禁用Sonar中选定包的某些指标吗?我使用Sonar来分析我的项目,在Entity和DTO包中我有一些相同的代码-带有注释的相同字段ID等被Sonar报告为重复。它对我来说完全没有意义,所以我想禁用它。我怎样才能做到这一点?使用全局排除选项会禁用所选包上的所有指标,但如何仅针对代码重复执行此操作? 最佳答案 使用较新的SonarQube安装,您可以使用sonar.cpd.exclusions仅从重复检查中排除某些文件。请参阅:https://docs.sonarqube.org/latest/analysis/anal

Java:PO、VO、BO、DO、DAO、DTO、POJO

💗wei_shuo的个人主页💫wei_shuo的学习社区🌐HelloWorld!Java:PO、VO、BO、DO、DAO、DTO、POJOPO持久化对象(PersistentObject)PO是持久化对象,用于表示数据库中的实体或表的映射通常与数据库表的结构和字段对应PO的属性对应数据库表的字段,可以进行持久化操作(存储、读取、更新、删除)VO值对象(ValueObject)VO是值对象,用于封装数据通常是不可变的,用于传递数据而不包含业务逻辑VO可以用于在不同层之间传递数据,如前端和后端之间BO业务对象(BusinessObject)BO是业务对象,用于封装业务逻辑和操作包含与业务相关的方法

Java中什么是DTO,什么场景下使用DTO,怎么使用DTO。

DTO是数据传输对象(DTO)(DataTransferObject)。比如同时操作一个业务但是这个业务涉及到两个表,这时可以再新建一个DTO表,继承与需要使用的表再额外加上这个表里面不含的数据。比如菜品表,菜品不但需要菜品的信息还需要口味的信息,一个菜品表不够用,可以做个菜品表DTO,继承于菜品表但是里面也有口味表的数据。importcom.zhengdidi.reggie.entity.Dish;importcom.zhengdidi.reggie.entity.DishFlavor;importlombok.Data;importjava.util.ArrayList;importjav