关于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
...全文
1348 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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来删除

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧