我明白楼上意思大概是根据情况灵活应变,不要被技术名词所迷惑,为什么这么做比怎么做更重要,不要用一个锤子敲所有钉子.
但是系统所谓的灵活性不能漫无止境的灵活,灵活总是围绕着固定展开的,一定是在某个固定的基石周围灵活,这个基石就是这种方案.
比如一种更复杂的情况,你分析该系统,觉得用ORM最佳,很好的完成了所有功能,然后客户提出新需求(需求变更必不可少),也许新需求就是针对这种复杂sql得拼装,导致ORM不容易满足,将自己陷入僵局,然后也很难向用户解释,这个在用户看来很简单的需求不能接,因为现有持久层不支持.所以我一直对DAO感觉到比较放心.

我到不这么认为, 我觉得楼主的这个做法倒有点像"充血", 如果控制在业务层不会渗透到别的层的,至于数据传递,我觉得可以用MODEL来传递.
而且我觉得 既然楼主能预见到需求变更,OR不能满足要求的情况发生,可以加一个DAO..

本人愚见