+ -
当前位置:首页 → 问答吧 → 为什么我的session.detele();删除不了数据呢

为什么我的session.detele();删除不了数据呢

时间:2011-09-03

来源:互联网

public void dele(int id) {
Transaction tx=null;
try {
session=HibernateSessionFactory.getSession();
tx=(Transaction) session.beginTransaction();

session.delete(session.get(Filminfo.class, id));
tx.commit();

} catch (Exception e) {
if(tx!=null)
{
try {
tx.rollback();
} catch (IllegalStateException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SystemException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

// TODO: handle exception
}finally
{
HibernateSessionFactory.closeSession();

}

执行的是后
@Test
public void testGetList() {
FilmInfoList film=new FilmInfoBizImpl();


film.dele(1);
 


}
没有报错 但是查询数据库的时候发现id=1的数据没有被删掉,怎么回事,求解

作者: zenglei0927   发布时间: 2011-09-03

FilmInfoList film=new FilmInfoBizImpl();这样直接new是删不掉的,你要从数据库中查出一条记录。这样直接new在瞬时态的,session只能去操作持久态的对象。也就是用session从数据库中查到的

作者: jike316   发布时间: 2011-09-03

还请楼上的指点

作者: zenglei0927   发布时间: 2011-09-03

引用 1 楼 jike316 的回复:
FilmInfoList film=new FilmInfoBizImpl();这样直接new是删不掉的,你要从数据库中查出一条记录。这样直接new在瞬时态的,session只能去操作持久态的对象。也就是用session从数据库中查到的
123456654321123456

作者: hepeng154833488   发布时间: 2011-09-03