我有一个组件,需要更新数据库的客户和客户地址(通过JDBC)。从CustomerDAO调用CustomerAddressDAO合适吗?或者创建一个单独调用它们的"CustomerDataManager“组件?
发布于 2012-01-24 22:20:56
你可以做到,但这并不意味着你应该这样做。在这些情况下,我喜欢使用具有同时使用两个DAO的方法调用的服务(在本例中为CustomerService)。您可以围绕服务方法定义事务,因此如果一个调用失败,它们都会回滚。
调用其他DAO的DAO的问题是,您很快就会得到循环引用。依赖注入变得更加困难。
发布于 2012-11-28 05:03:31
显然,你可以用不同的方式来做。但是,为了正确回答这个问题,您应该从您的模型开始。在模型中,查看Address是一个实体(具有自己的id并独立使用的实体),还是值类型(仅在客户上下文中有意义的内容)。然后,您将有两个案例:
结论:如果设计得当,DAO不会相互访问(在标准情况下)。
https://stackoverflow.com/questions/8988252
复制相似问题