public void delete(String id) {
System.out.println("更改前:"+id);//这个有值
getHibernateTemplate().update(" update Duty set dutystate=2 where dutyid=?",Integer.parseInt(id));
}
}
public class MySupportHibernate extends HibernateDaoSupport {
。。。。
}
我想根据duty的dutyid来修改dutystate,执行更新时报错:
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: update Duty set dutystate=2 where dutyid=?; nested exception is org.hibernate.MappingException: Unknown entity: update Duty set dutystate=2 where dutyid=?
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:661)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
我初学hibernate,看到的要修改时的例子都是这样改的:
getHibernateTemplate().update(duty);
这里有点不明白,这里的参数duty根据什么来确定要休息哪一行呢?是不是在传进来的时候全部设置好他的属性,如
duty.setDutyid(1),duty.setDutyState(2)?
6 个解决方案
#1
修改的方法名用delete(⊙﹏⊙b汗)
一般hibernate做更新的方法是这样的吧
我刚学
一般hibernate做更新的方法是这样的吧
private void updateEvents(Event theEvent) {
Session session=HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.update(theEvent);
System.out.println("--------已经执行了更新--------");
session.getTransaction().commit();
}
我刚学
#2
命名的问题,我页面上是写删除的,因为有别的表跟这个关联,所以删除时我就改一下状态,让它隐藏起来而已。
你的这个方法我知道,现在的问题是 theEvent 这个里面不是有好多属性么,我还得把这些属性一个一个用setXX()方法设好.我现在只想根据id修改其中的一项属性,如果还要把所有的属性都设置好就很麻烦了
你的这个方法我知道,现在的问题是 theEvent 这个里面不是有好多属性么,我还得把这些属性一个一个用setXX()方法设好.我现在只想根据id修改其中的一项属性,如果还要把所有的属性都设置好就很麻烦了
#3
我一般都先根据id找到这行记录,然后将Hibernate返回的object转为Duty 实体,然后将值set到Duty 中再update Duty这个Object对象 就可以了
#4
这个是可以的。只是表中有二三十个字段的时候,我只想改一个,就得set30次。还有多查询一下,感觉不是很好
#5
i get it. ths!
#6
继续努力。。
#1
修改的方法名用delete(⊙﹏⊙b汗)
一般hibernate做更新的方法是这样的吧
我刚学
一般hibernate做更新的方法是这样的吧
private void updateEvents(Event theEvent) {
Session session=HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.update(theEvent);
System.out.println("--------已经执行了更新--------");
session.getTransaction().commit();
}
我刚学
#2
命名的问题,我页面上是写删除的,因为有别的表跟这个关联,所以删除时我就改一下状态,让它隐藏起来而已。
你的这个方法我知道,现在的问题是 theEvent 这个里面不是有好多属性么,我还得把这些属性一个一个用setXX()方法设好.我现在只想根据id修改其中的一项属性,如果还要把所有的属性都设置好就很麻烦了
你的这个方法我知道,现在的问题是 theEvent 这个里面不是有好多属性么,我还得把这些属性一个一个用setXX()方法设好.我现在只想根据id修改其中的一项属性,如果还要把所有的属性都设置好就很麻烦了
#3
我一般都先根据id找到这行记录,然后将Hibernate返回的object转为Duty 实体,然后将值set到Duty 中再update Duty这个Object对象 就可以了
#4
这个是可以的。只是表中有二三十个字段的时候,我只想改一个,就得set30次。还有多查询一下,感觉不是很好
#5
i get it. ths!
#6
继续努力。。