为了学习做的小项目,恳请前辈们批评!

lijinlinlin
06-12-18 3 217

这是这两个月做的一个小玩意儿,主要是为了学习,做完之后感觉不好,但又不知道是哪里。
以下是概要性的架构图,恳请前辈们批评:



另外,再请教一下,是在DAO这层中拼出HQL好呢,如下:


public List selectBy(PagerPO pagerPO) {
List list = getHibernateTemplate().find(
"from MasterPO as master where master."
+ pagerPO.getCondition() + " like ?",
"%" + pagerPO.getKeyword() + "%");

return list;
}


还是从Service层拼好一个HQL,再传给DAO好呢,这样DAO层就可以做得更通用些。

banq
2006-12-21 11:14

>DAO这层中拼出HQL好呢
HQL是持久层技术,当然应该限定在持久层。

lijinlinlin
2006-12-22 11:08

在一个较复杂的系统中,如果把HQL限定在DAO这层中。这样根据需要可能每个模块就要有一个自己的DAO(像用户管理、部门管理之类的)。这样SPRING的配置文件就会长些

我的意思是如果把HQL在SERVICE层中拼好,传给DAO,这样DAO就可以做成一个,很通用那种(但这一个的代码也可能会稍长些)。这样SPRING配置会短些,而且从资源占用角度考虑,工厂生成的DAO少了会少占用资源。

虽然HQL是持久层技术,但比如查询:可能是很多条件组成的,还要涉及判断之类,这是否也包括业务方面的东东了,放到SERVICE层是否合适?

不知对否?还请指点!

banq
2006-12-25 14:58

如果HQL是关于业务规则方面,或者属于筛选查询的,可以放入领域层,这个领域层属于业务层。

参考Evans DDD