关于this.getHibernateTemplate().delete()方法

qq_30169713 2015-08-04 01:20:43
列如,user有id,name,password
如果直接this.getHibernateTemplate().delete(user)
默认删除是按id=?删的
现在我知道了name=xx,但是id未知。要删除怎么写?
this.getHibernateTemplate().delete("from user u where u.name=?",+user.getName())
这样写不行啊,我试过了。
还有Action里,一个public String方法只能调用一次hibernate的事务吗?
我调两次就报错A different object with the same identifier value was already associated with the session
...全文
1172 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
caimoxuan 2016-11-01
楼上不对呀,这个模范方法返回的是void
回复
qq_21985711 2015-08-06
跟正一下上面的public boolean delete(Student student){ boolean issuccess = super.getHibernateTemplate().delete(student); return issuccess ; }
回复
qq_21985711 2015-08-06
用student表做例子 StudentDaoImpl中: public Student findbyname(String name){ Student student =(Student)getHibernateTemplate().get("com.xxx.entity.Student", name); return student; } public boolean delete(Student student){ super.getHibernateTemplate().delete(student); } StudentService层省略 StudentAction中: public String deleteStudent(){ Student stu = this.studentService.findbyname(页面中传来的name); boolean issuccess = this.studentService.delete(stu); if(issuccess ) return "success"; else return "false"; } 你这样试试,好长时间不用hibernate不知对不对
回复
菜 头 2015-08-05
把name set到user里面,和id一样的用法不是吗
回复
豫让_______ 2015-08-05
楼主得先搞清游离态、自由态、持久态之间关系。
回复
mtian2020 2015-08-05
先调用find方法根据name查找user,然后再delete
回复
qq_30169713 2015-08-05
引用 1 楼 u011320740 的回复:
把name set到user里面,和id一样的用法不是吗
没用user里有100个属性,出了id其他99个都有值他都不执行,.delete(user)只根据id来删除
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-08-04 01:20
社区公告
暂无公告