jjzjj

java - 我应该将一个实体转换为 Repository 对象中的 DTO 并将其返回给服务层吗?

我想在这里找到两个非常相似的问题的答案:ShouldIconvertanentitytoaDTOinsideaRepositoryobjectandreturnittotheServiceLayer?或IsitokaytoreturnDTOobjectsfromtheRepositoryLayer?现在我卡在我的Servlet(Servie层)中,例如尝试从RestaurantOwnerRepository中检索所有Restaurant对象://RestaurantOwnerService(Servlet)@Override@TransactionalpublicListgetAvai

c# - 关注点分离——DAO、DTO 和 BO

所以我有一个DAO、DTO和BO。下面的代码是结果://Instantiateanewuserrepository.UserRepositoryrep=newUserRepository();//RetrieveuserbyID(returnsDTO)andconverttobusinessobject.Useruser=rep.GetById(32).ToBusiness();//Performbusinesslogic.user.ResetPassword();user.OtherBusinessLogic("test");user.FirstName="Bob";//Conver

java - 设计具有外键关系的 DTO

我正在为Web应用程序使用Java+Spring框架。我没有使用任何ORM工具。相反,我尝试使用简单的DAO/DTO模式将数据库关系建模为Java对象。每当DTO与数据库中的单个表完全对应时,它就非常简单。但是如果有表使用外键引用其他表,我不确定最好的方法是什么。在Stackoverflow中寻找类似的答案,但找不到符合我需要的答案。我想举一个非常具体的例子——假设有两个实体用户和组。我有一个UserDTO和GroupDTO,每个都有UserDao(JdbcUserDao)和GroupDao(JdbcGroupDao)。现在我在数据库中有一个连接用户和组的关系。一个用户可以属于多个组。

java - 使用 JPA 的事务边界和 DTO 转换

一直在想这个异常应该怎么处理:DTO应该在Controller中转换,服务层不需要知道它们。事务边界由服务层定义。但是您如何避免JPALazyInitialization异常呢?DTO转换可能需要LazyFetched数据,但由于事务是由服务层处理的,因此无法做到。我能想到的方法有很多,但都很难看。将DTO转换放在服务层现在对我来说似乎是最好的。 最佳答案 是的,在服务层操作DTO肯定更好。当使用DTO中包含的更改更新实体时尤其如此,否则您将需要获取和更新分离的实体,将它们传递给服务,将它们再次合并到持久性上下文中,等等。“DTO应

java - MVC 架构 DTO/模型映射/转换

使用SpringMVC我们通常会看到Controller、Service和Repository层。Repository层使用Entity模型,它与数据库是一对一的映射。我想到了以下-Service层应该使用相同的Entity模型吗?服务层应该使用单独的域模型吗?如果是,那么往返映射应该在服务层完成吗?Controller层我们应该使用相同的Domain模型吗?Controller层应该使用单独的DTO模型吗?如果是,那么往返映射应该在Controller层完成?我们是否有任何简单的方法可以在不编写太多冗长代码的情况下进行映射?我过去用过几次Dozer。这个问题可能有人问过,但我找不到。

java - 是否可以循环遍历 java 中的类成员?

我有一个拥有一大群成员的DTO。我想知道Java是否支持类的for(in)的想法。我不认为它确实如此,但如果它确实如此,我会省去很多悲伤,所以,我想我会把这个问题扔在那里。 最佳答案 好吧,你可以通过反射(reflection)来做到这一点:for(Fieldfield:clazz.getFields()){...}(或方法等的等价物)然后您可以获得特定实例的字段值或静态值。 关于java-是否可以循环遍历java中的类成员?,我们在StackOverflow上找到一个类似的问题:

java - 使用 AspectJ 编织 toString() 实现

尝试为大量DTO编织默认的toString()方法,仅使用编译时编织。目标是使用Jackson库返回JSON表示。遵循了thisarticle中的建议,变成了注解式的切面配置,最后的代码如下:public@AspectclassJsonToStringAspect{privateinterfaceJsonToString{publicStringtoString();}publicstaticclassJsonToStringImplimplementsJsonToString{publicStringtoString(){returnSingletonJsonEncoder.toJs

java - 如何建模和处理表示DTO以从复杂的域模型中抽象出来?

嗨,我正在开发一个需要使用Hibernate处理复杂域模型的应用程序。该应用程序使用SpringMVC,并且在表示层中使用域对象非常困惑,因此我认为我应该使用往返于服务层的DTO,以使它们与我的View中的内容相匹配。现在假设我有一个CarLease实体,其属性不是简单的Java原语,而是由诸如Make,Model等其他实体组成的publicclassCarLease{privateMakemake;PrivateModelmodel;...}大多数属性都是这种方式,可以使用jspView上的下拉选择来选择它们,每个属性都会将ID回发给Controller。现在考虑一些标准用例:创建,

java - 是否可以将 JSON 序列化/反序列化为 Java DTO,并将额外的字段放入映射中?

我有一个这样的DTO:publicFoo{publicintbar=123;publicMapparams;//key1=v1,key2=v2etc.}我希望它序列化为以下JSON或从以下JSON序列化:{"bar":123,"key1":"v1","key2":"v2"}有谁知道如何使用Jackson或Genson做到这一点?基本上,我希望对DTO中声明的字段进行自动类型转换,但任何“额外内容”都会进入参数映射。 最佳答案 感谢@fge让我走上正轨。Jackson有@JsonAnySetter和@JsonAnyGetter注释可用

c# - 领域驱动设计中层与层之间的数据传输对象

域层通过数据传输对象(DTO)与其他层进行通信。我对DTO感到困惑。DTO1位于领域层和表示层之间。DTO2位于域和数据层之间。我应该在层之间创建两个不同的DTO对象还是只创建一个DTO。专业的方法是什么? 最佳答案 让我们遍历所有层:数据访问层(DAL)。它用于从数据库(DB)获取数据。通常它知道领域实体和领域层。DAL可以返回域实体或DTO(面向数据库的数据结构)。如果需要,可以使用这些DTO或域实体来构建表示层(View模型)的DTO。域实体通常很重,需要datamappers或任何ORM。我更喜欢使用DomainEntiti