Java服务层方法-主键还是休眠实体参数?如果使用Spring Boot,哪个更惯用?

时间:2018-12-03 02:43:07

标签: java spring-boot domain-driven-design

如果使用Java(Spring Boot),请设想服务中有一种方法: updateCompanyName

在Spring Boot应用程序的SERVICE LAYER中,哪个是更惯用的方法签名:

......

updateCompanyName(Company company,String newName);

-或-

updateCompanyName(长公司ID,字符串newName);

......

换句话说,控制器应该从DAO混合对象并将休眠的实体传递到服务层,还是服务层应该期待主键并从休眠中混合实体?

1 个答案:

答案 0 :(得分:1)

通常,在分层体系结构中,控制器(来自表示层)从输入(即请求正文)中提取数据(即companyID),并通过传递此数据来调用应用程序服务。

应用程序服务从存储库加载聚合,在其上调用适当的方法,然后将聚合持久化回存储库。此应用程序服务显示很少,没有业务逻辑(属于聚合)。

因此,对于您而言,答案是:控制器在应用程序服务上调用updateCompanyName(Long companyID, String newName);