在我的公司中,我们有表,这些表的bean,以及使用这些bean作为输出和那些表作为输入的SQL请求(iBatis,myBatis,..)。
像往常一样,我为应用程序中使用的每个表创建一个实体bean。
但是,例如,在一个SQL请求使用7个表的地方,我需要创建7个bean的组合。而且,如果另一个请求正在使用4个不同的表,则必须创建另一个由4个bean组成的组合。
现在,我想知道在应用程序的请求中是否需要与多个表元组一样多的组成。
我考虑将bean作为解决此问题的接口,但似乎不可能。
问题示例:
表客户,汽车,客户汽车,零售商,客户零售商......
在哪里选择客户名称,零售商名称,汽车名称...
要处理这些实体的请求输出:
public CustomerRetailerCar {
private Customer customer;
private Car car;
private Retailer retailer;
}
因此,我最终撰写了很多作品,我感到我没有以正确的方式解决此问题。我错了吗?
任何建议表示赞赏。
答案 0 :(得分:0)
似乎实体之间的关联未在您的域模型中表达(或至少在从数据库映射时未使用)。
也就是说,如果每个Customer
都有一个Car
,那么Customer
bean中应该有一个字段,如:
private Car car
如果Customer
可能有多辆车,那么该字段应该是Car
的集合。
与Customer
<-> Retailer
关联相同。
在这种情况下,当您需要返回具有相关汽车和零售商的客户时,就不需要创建新类别。映射器应返回设置了Customer
和car
字段的现有retailer
对象。
例如,如何在mybatis中将其映射到examples in documentation