SSH用通用dao更新出现的问题
来源:互联网 发布:2017最新一手数据 编辑:程序博客网 时间:2024/06/07 16:48
再把SSH框架搭好以后,dao层采用了通用dao来实现,http://1194867672-qq-com.iteye.com/blog/1159918这个是一种实现方法,但是本人亲测,需要在dao的实现类findByHQL方法修改一下,query.setParameter(i, params); 这句话需要把params改成param[i],最后是这样的:
public List<T> findByHQL(String hql, Object... params) { // TODO Auto-generated method stub Query query = this.getSession().createQuery(hql); for (int i = 0; params != null && i < params.length; i++){ query.setParameter(i, params[i]); } return query.list(); }
上面是使用注解实现的,但是我用的是xml配置来实现的,两种方法都可以,前提是需要你把事务配置完成了,在上一篇我已经配置完成了,但是我在保存更新的时候出现了问题,困扰我了好几天,一直没有找到原因,用this.getSession().update(entity);的时候明明数据库里面有原来的数据他就是不更新,而且我也denug过了,当时怀疑是不是Hibernate中的数据不是持久态,所以不能更新,后来发现不对,后来又加上了this.getSession().flush();还是不行,不更新数据,他会插入一条新的数据
最后是我想明白了,原来是因为自己的逻辑有问题,因为我跟本没有获取到当前数据的id,我就在更新了,所以才造成了我的更新失败,不光是更新失败,删除也是失败的,我更加确定了是我的逻辑有问题,所以不更新的时候还是先从自身找找原因吧,当时我试过this.getSession().saveOrUpdate(entity);也添加过this.getSession().flush();真是愚蠢,笨啊
对了,我认为其实通用dao没有必要写一个更新一个保存,他们都可以用saveOrUpdate(entity)来进行实现,有的话就会更新,没有的话就会保存,何必再写两个呢?
- SSH用通用dao更新出现的问题
- SSH架构中DAO泛型 出现的问题
- SSH事务处理出现的问题(org.springframework.dao.InvalidDataAccessApiUsageException: )
- SSH中继承HibernateDaoSupport 的通用Dao
- SSH通用DAO
- 基于注解ssh的通用dao的crud
- 基于SSH编写通用的DAO、Service、Action
- 基于SSH编写通用的DAO、Service、Action实现
- ssh出现的问题
- ssh出现的问题
- 个人用hibernate写的通用Dao
- 通用的DAO雏形
- Hibernate的通用dao
- Hibernate的通用dao
- Dao优化出现的问题(1)
- ubuntu ssh 出现的问题
- SSH出现问题的解决方法
- ssh整合出现的问题
- Java面试系列之HashMap大扫盲汇总
- 【LeetCode】17. Letter Combinations of a Phone Number
- 分页内存和非分页内存区别
- 解决Linux 启动 Nginx报错 :nginx: [emerg] mkdir() "/var/temp/nginx/client" failed (2: No such file or direc
- storm分布式安装
- SSH用通用dao更新出现的问题
- QT--------QLineEdit
- 【程序9】输出国际象棋棋盘
- Ubuntu 16.04 LTS 中通过grub修改root用户密码
- Oracle PL/SQL开发入门(第一弹:Oracle 11g数据库系统)
- Java IO 系列源码分析——ByteArrayInputStream和ByteArrayOutputStream
- 关于linux驱动管理笔记
- 一位资深程序员大牛给予Java初学者的学习建议
- thinking in java——0320学习笔记