public interface CustomerResource {
@GET
@Path("/getCustomerListByUserID/{userID}")
Response getCustomerListByUserID(@PathParam("userID") String userID);
@DELETE
@Path("/deleteCustomer/{customerID}")
Response deleteCustomer(@PathParam("customerID") int customerID);
@POST
@Path("/updateCustomer")
Response updateCustomer(CustomerDTO customer);
}
public class CustomerResourceImpl implements CustomerResource{
@Override
public Response deleteCustomer(int customerID) {
internalService.deleteCustomer(customerID);
}
@Override
public Response getCustomerListByUserID(String userID) {
internalService.getCustomerListByUserID(customerID);
}
@Override
public Response updateCustomer(CustomerDTO customer) {
internalService.updateCustomer(customer);
}
}
public interface CustomerDAO extends BaseDAO<CustomerDTO> {
List<CustomerDTO> getCustomerListByUserID(String userID);
void deleteCustomer(Integer customerID);
void updateCustomer(CustomerDTO customer);
}
太感谢你们了!祝大家成功!
DTO是Data Transfer Object的缩写,因此它用于在应用程序的类和模块之间传输数据。
DTO应该只包含数据、getter、setter和构造函数的私有字段。不建议DTO将业务逻辑方法添加到此类类中,但添加一些util方法是可以的。DAO是Data Access Object的缩写,因此它应该封装在数据存储(数据库、文件系统等)中检索、保存和更新数据的逻辑。
下面是DAO和DTO接口的示例:
interface PersonDTO {
String getName();
void setName(String name);
//.....
}
interface PersonDAO {
PersonDTO findById(long id);
void save(PersonDTO person);
//.....
}
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
protected String name;
...getter and setter
}
问题内容: 我们将使用DTO在表示层之间来回发送数据。我们有像这样的图层: facade appService domain 并且我们使用推土机来帮助我们将实体转换为dto。但是我现在有两个问题: 从实体到dto,我们可以使用推土机,但是从dto到实体,我们可以使用推土机吗?如果是,如何? 我应该在哪里创建实体?在外观或DTOAssembler中? 例如,我必须注册一本书。这本书的实体外观如下:
我试图在我的项目中巧妙地使用DTO和实体,但它似乎比它应该的更复杂。我正在构建一个管理库存的后端,我使用NestJs和TypeOrm。 我的客户向我发送了一组数据抛出POST请求,比如: 我的控制器有责任通过使用自定义ValidationPipe检查字段: 我在许多地方读到,在最佳实践中,原始数据应该转换为DTO,当涉及到数据插入时,我应该将DTO转换为类型化实体。 我同意这种方法,但我发现它非常
问题内容: 我是Go语言的新手,具有C#背景并且对如何构造Go应用程序感到困惑。 假设我正在构建一个REST API,它将位于数据库之上。还要说,即使完成后,鉴于业务的变迁等,此应用程序可能仍需要频繁更改。 在带有诸如Entity Framework和DTO之类的工具的C#中,我通过从控制器给出的结果中抽象出数据库来缓解此问题。如果更改数据库中一堆字段的名称,则可能必须更改数据库访问逻辑,但是希望
我需要一种标准方法来比较JPA实体与其DTO并确定它们是否代表相同的业务对象。我可以想到三种方法,每个DTO上的自定义方法,带有静态方法的接口或比较器。 基于若昂·迪亚斯的回答,方法4-继承。 优点/缺点 方法1-一路坏 方法2-使用接口支持组合而不是继承,但需要使用自定义方法名称的语义学() 方法3-不需要修改源代码 方法4-简化语义学,因为它使用标准但需要“样板 这些方法的任何其他优缺点或对其
如果我有实体类 和一个DTO > 我的问题是我应该在客户端中使用(赢形)吗?或创建另一个类 如果我想要一个方法 我应该把它放在哪里(作为静态的辅助方法,还是放在里面)?我以前认为应该是里面的方法,但是贫血模型不允许有任何方法。
我继承了一个用Java编写的应用程序,该应用程序使用JPA访问数据库。该应用程序使用了一种我以前从未遇到过的设计模式,并且我会真正了解为什么使用此模式的一些指导。与许多应用程序一样,我们有一个前端、中间件和后端数据库。数据库通过 DAO 访问。DAO上的每个方法都加载一个实体DTO,它只是一个POJO,除了获取器和设置器之外什么都没有,然后该实体DTO被传递到具有更改实体状态的其他方法的实体中。示