关于hibernate的一点见解
2009-12-04 19:25
337 查看
用了hibernate开发项目已经很久了,尤其是delete(Object obj)方法,我个人一直认为delete只能删除persist状态的对象,正如api所说:
不过今天我无意之中,使用了如下的代码:
@Test
public void testTeacher() throws Exception {
Session session = sessionFactory.openSession();
Teacher t = new Teacher();
t.setUsername("zcl");
session.beginTransaction().begin();
session.save(t);
session.getTransaction().commit();
session.close();
//此时session已经关闭,t对象已经成了脱管状态。
Session session1 = sessionFactory.openSession();
session1.beginTransaction().begin();
session1.delete(t); //依然删除成功!
session1.getTransaction().commit();
session1.close();
}
我就纳闷了,怎么能删除一个脱管状态的对象呢!
于是我又测试了如下代码:
@Test
public void testTeacher1() throws Exception {
Session session = sessionFactory.openSession();
Teacher t = new Teacher();
t.setId(13); //这个id为13在数据库中有对应的记录
session.beginTransaction().begin();
session.delete(t); //发现依然执行成功
session.getTransaction().commit();
session.close();
}
于是我觉得hibernate对delete(Object o)的说明显示是bug.
应该这样:只要数据库有对应的id,则删除成功!
附:我使用的是hibernate3.3.2 + jpa.
void | delete(Object object) Remove a persistent instance from the datastore. |
@Test
public void testTeacher() throws Exception {
Session session = sessionFactory.openSession();
Teacher t = new Teacher();
t.setUsername("zcl");
session.beginTransaction().begin();
session.save(t);
session.getTransaction().commit();
session.close();
//此时session已经关闭,t对象已经成了脱管状态。
Session session1 = sessionFactory.openSession();
session1.beginTransaction().begin();
session1.delete(t); //依然删除成功!
session1.getTransaction().commit();
session1.close();
}
我就纳闷了,怎么能删除一个脱管状态的对象呢!
于是我又测试了如下代码:
@Test
public void testTeacher1() throws Exception {
Session session = sessionFactory.openSession();
Teacher t = new Teacher();
t.setId(13); //这个id为13在数据库中有对应的记录
session.beginTransaction().begin();
session.delete(t); //发现依然执行成功
session.getTransaction().commit();
session.close();
}
于是我觉得hibernate对delete(Object o)的说明显示是bug.
应该这样:只要数据库有对应的id,则删除成功!
附:我使用的是hibernate3.3.2 + jpa.
相关文章推荐
- 关于阿法狗的一点个人小见解
- 关于项目类库的重构和函数名的一点见解
- 关于QT stylesheet的使用的一点见解
- 关于HibernateGenericDAO 的一点补充
- 关于Hibernate的一点东西
- 关于hibernate中报错”The content of element type "class" must match ......“的一点发现
- 关于hibernate 是否选择关联查询(full,out,inner)时判断的一点体会
- 关于开发效率的一点见解
- 关于移动应用APP数据安全的一点见解
- 关于乱码的一点见解
- json+hibernate死循环问题的一点见解
- 谁能提供一点关于J2EE的资料 最好是Hibernate和Sping的视频
- 关于jsp,struts和hibernate的连用的一点心得(初学篇)
- 关于sql优化的一点见解
- 关于大型页游后端管理系统的一点经验和个人见解
- 关于json和jsonp(json跨域)的一点分享与见解
- [iOS]关于如何在项目中同时适配低版本和高版本的API的一点小见解
- BLOG1:关于指针数组地址偏移量的一点小见解
- 关于对Android使用AIDL进行IPC通讯的一点见解
- 关于如何做自动化测试和何时做自动化测试的一点见解和疑问