我采用的技术是SSH整合,用Hibernate操作数据库,删除方法如下://删除
public boolean delete(Object obj) throws Exception{
this.getHibernateTemplate().delete(obj);
boo=true;
return boo;
}
在Action中调用这个方法时,我传入了一个对象,我只保存了这个对象的主键值,这样可以吗?我觉得应该行。但是却报出了错误,让我保存其他非空的属性的值。接着我就按照要求,根据id把对象所有的非空属性的值都保存了,但这时又报了一个错,说这个对象不是java.Lang.Object类型,郁闷啊!望高手指点!!急急,小妹感激不尽!
public boolean delete(Object obj) throws Exception{
this.getHibernateTemplate().delete(obj);
boo=true;
return boo;
}
在Action中调用这个方法时,我传入了一个对象,我只保存了这个对象的主键值,这样可以吗?我觉得应该行。但是却报出了错误,让我保存其他非空的属性的值。接着我就按照要求,根据id把对象所有的非空属性的值都保存了,但这时又报了一个错,说这个对象不是java.Lang.Object类型,郁闷啊!望高手指点!!急急,小妹感激不尽!
delete MyObject where id = ?还有一种就是先通过id来get对象, 然后在delete.
类似这样应该可以,先通过ID查到对象,再删除,不过,应该只设置ID就行了。
this.getHibernateTemplate().delete(new Obj(objId));
解决方案是
先通过Obj obj=(Obj)session.get(Obj.class,id);
然后在session.delete(obj);
这样就不会报错啦
//删除
public int delete(String hql) throws Exception{
// this.getHibernateTemplate().delete(obj);
int num=0;
Query query=this.getSession().createQuery(hql);
num=query.executeUpdate();
return num;
}
参数是一个字符串,这样就传入HQL语句。delete 映射类 where id=?;
希望有同样问题的朋友可以尝试一下这个方法哦!