DAO设计和实施实践

时间:2015-08-18 12:31:50

标签: java hibernate dao genericdao hibernate-generic-dao

例如,我有很多表格,例如people car house等等,我想知道一般DAO设计的良好做法。

在这种情况下,peoplecarshousescarhouse拥有自己的id,也许是auto_increment int值。它们还有一个外键userId,它是user的PK。

第一步,我设计了一个GenericDao来为所有表提供基本的CRUD功能。

然后呢?

我需要为用户A查找所有汽车,因此我需要CarDao功能findAllCarsForUser(int userid),其中也可能有findCarsByName(String name)findCarsByNameForUser(String name, int userid)等等。 对于House,需要相同的HouseDao。如果人们有其他类型的东西,每个人都应该有ObjectXXXDao

但是对于上层,XXXDao是否应该暴露给他们?

我认为不应该这样,因此每个DAO都有一个包裹Service类,例如CarService HouseService等等。但是对于这些服务类中的函数,可能只有语句return XXXDao.findCarsByNameForUser()。没有或只有很少的附加功能被添加到服务类。

或者应该向此XXXservice图层添加哪些功能?

如果有加入CarHouse表的要求,则可能需要CarHouseDaoCarHouseService

我想知道,这是一个普通DAO的好设计吗?如果没有,是否有任何好的建议或例子?

0 个答案:

没有答案