【发布时间】:2018-06-09 14:28:00
【问题描述】:
我很难理解存储库模式。
我无法理解的一件事,大多数教程建议,存储库应该像内存数据库一样,即它们应该有 add()、remove()、find() 等方法.但是,如果我没有使用像Hibernate 这样的任何持久性框架,我应该将这些对象保存到数据库的逻辑放在哪里?是否应该有一个单独的数据访问层?
当一个对象包含对另一个对象的引用时会发生什么?
例如,一个Customer 可以有多个Address(es),并且Customer 和Address 之间存在标识关系
public class Customer {
private String firstName;
private String lastName;
private List<Address> addresses; // one or more addresses
// ...
}
public class Address {
protected String street;
protected String city;
// ...
}
是否应该为Customer 和Address 提供两个单独的存储库?
如果涉及到一个查找表(例如,一个Book 具有一个Owner,在一个非识别关系中),这样的存储库结构应该是什么样子?
【问题讨论】:
-
这是设计问题,您可以在 CustomerDao 中使用 addAddress() 方法。或者您可以为客户地址相关的查询定义单独的 CustomerAddressDao 类。
标签: java design-patterns dao