25
回答
service层可以写hql或sql么? 按公司的政治要求
滴滴云服务器,限时包月0.9元,为开发者而生>>>   

在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语句吗?求解~

举报
Sky__
发帖于6年前 25回/3K+阅
共有25个答案 最后回答: 4年前

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

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

感觉单一职责好像是类设计吧?和分层有关系?
--- 共有 2 条评论 ---
磊神Ray一样一样的 6年前 回复
Sky__我也觉得没有关系.... 6年前 回复
service 层,引入hql 和 sql,如果这个语句多个地方使用的话,那么会造成代码重复,而且修改问题的时候,不一定会修正完整; service层,是业务逻辑,即最好不要涉及任何BO操作; service层调用dao层,dao层统一封装数据库处理脚本; 如果按照你的意思,,更进一步,何必要在service层写hql呢,直接在action层写,不是更简单;
--- 共有 2 条评论 ---
Yoblue回复 @Sky__ : DAO层直接继承一个泛型类 里面包括各种HQL语句和SESSIONFACTORY的调用方法 这样就不用给每个DAO都设计数据操作了。。。是不是超级懒 哈哈 4年前 回复
Sky__在serivce层开了事物啊,所以没有action层写 6年前 回复
顶部