关于hibernate的一点见解
来源:互联网 发布:java 使用redis教程 编辑:程序博客网 时间:2024/05/05 19:54
用了hibernate开发项目已经很久了,尤其是delete(Object obj)方法,我个人一直认为delete只能删除persist状态的对象,正如api所说:
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.
- 关于hibernate的一点见解
- 关于hibernate的见解
- 关于网络游戏的一点见解
- 关于编写程序的一点见解
- 关于对网络学习方法的一点见解
- 关于函数工作过程的一点见解
- 关于Flex Builder调试的一点见解
- 关于开发效率的一点见解
- 关于驱动的一点个人见解
- 关于Flex Builder调试的一点见解
- 关于RAM的一点小见解
- 关于handler机制的一点见解
- 关于handler机制的一点见解
- 关于阿法狗的一点个人小见解
- 关于回调函数的一点见解
- 关于sql优化的一点见解
- 关于STM32系统框架的一点见解
- json+hibernate死循环问题的一点见解
- 三层程序设计之浅见
- Ping命令无法使用
- 写给IT大学生们的一点建议
- 魔方阵
- 猜拳游戏
- 关于hibernate的一点见解
- TOMCAT内存大小调整
- 基于i.MX27的网络音视频通信的实现(2009-12-4)
- 于丹教授360个让人流泪的句子
- zz搜索引擎重复网页发现技术分析
- OpenGL之gluLookAt函数
- 高级文件格式逆向分析
- Ubuntu zgegblog十个漂亮主题
- COM