service层可以写hql或sql么? 按公司的政治要求

Sky__ 发布于 2011/10/11 17:52
阅读 3K+
收藏 0

在service层写hql语句或sql语句,这样可以么?

xxxDao extends MyAbstractHibernateDaoSupport implements EntityDao { CRUD,pageNation....}

xxxModuleABaseService extends BaseSerivce {
    aaaDao setter,getter;
    bbbDao setter, getter;
    cccDao setter, getter;
    ......
}

 

studentServiceImpl extends xxxModuleABaseService  implements studentService{
     @Transactional(readOnly = false) public void someMethod(){
           this.aaaDao.excuteHql("delete User u where u.id= ? ",paramsValue[]{...});
           this.cccDao.excuteHql("update User .... ", ....);
    }
}

公司规范说,不让在service里写hql或sql,我决得不对,我绝得 要视具体情况而定,对吧?

大家是怎么做的呢?如果在Service层里有多个业务dao要操作 ,不能在service里写hql或sql语句吗?求解~

加载中
1
游客
游客
怎么实现都是可以的,最好按规范做。这样统一。
0
魔力猫
魔力猫
理论上持久化代码不应该侵入业务层。
0
磊神Ray
磊神Ray

最好按照“单一职责”的设计原则,业务层的代码不直接执行数据层的功能

0
2018是狗年
2018是狗年

引用来自“磊.Y”的答案

最好按照“单一职责”的设计原则,业务层的代码不直接执行数据层的功能

感觉单一职责好像是类设计吧?和分层有关系?
磊神Ray
磊神Ray
一样一样的
Sky__
Sky__
我也觉得没有关系....
0
李渊
李渊
不要将技术问题和业务问题混在一起。
0
ddatsh
ddatsh

service本就不应该弄SQL进来

 

0
jeffsui
jeffsui

和谐,你懂的

0
hantsy
hantsy
编程方式的一致性很重要。虽然公司的规定大部分是一些脑残的人定制的。
梦之人生
梦之人生
我现在属于脑残人士
0
a
alex
service 层,引入hql 和 sql,如果这个语句多个地方使用的话,那么会造成代码重复,而且修改问题的时候,不一定会修正完整; service层,是业务逻辑,即最好不要涉及任何BO操作; service层调用dao层,dao层统一封装数据库处理脚本; 如果按照你的意思,,更进一步,何必要在service层写hql呢,直接在action层写,不是更简单;
寂雨子
寂雨子
回复 @Sky__ : DAO层直接继承一个泛型类 里面包括各种HQL语句和SESSIONFACTORY的调用方法 这样就不用给每个DAO都设计数据操作了。。。是不是超级懒 哈哈
Sky__
Sky__
在serivce层开了事物啊,所以没有action层写
0
就是不着调
就是不着调
dao实现必要地数据库操作功能,service层调用就是了.
返回顶部
顶部