开发者社区 问答 正文

Spring&Hibernate事务分层问题

Hibernate事务交给了spring管理

Dao层封装了Hibernate Session的save,update,get,load,delete等方法

以下是Service层的一个方法

@Override
public void updatePassword(int id, String oldPassword, String newPassword) {

Operator o = this.operatorDao.getById(id);
if(o == null)
throw new RecordNotFoundException("没有此用户");

if("".equals(oldPassword.trim())|| "".equals(newPassword))
throw new ServiceException("旧密码或新密码不能为空");

if(!oldPassword.equals(o.getPassword()))
throw new ServiceException("旧密码错误");

o.setPassword(MD5.crypt(newPassword)); 

}

因为Dao层是直接封装了session的方法。并且在service层开启事务。所以通过dao.getById方法取过来的对象是持久化状态。现在修改密码就直接是通过setPassoword。事务自动提交的时候Hibernate会自动生成update的sql。

现在有个疑问,那么Dao层我要把hibernate替换掉成jdbc。那么我的Dao的实现层要重写。那么Service层的事务也得换成别的。那么说我的Service层是不是得重写?

展开
收起
a123456678 2016-03-17 15:41:52 2667 分享 版权
1 条回答
写回答
取消 提交回答
  • 替换成jdbc的话 你可以用jdbctemplate

    只要保证datasource是由spring管理的就行

    2019-07-17 19:05:33
    赞同 展开评论