如下所示:
public static void delete() {
Session session = HiberUtil.getSession();
ProjCost toDelete
= (ProjCost)session.load(ProjCost.class, 6723L); // 用load方式就是想不希望Hibernate去touch数据库,毕竟delete时只需要一个id就够了。
session.close();
session = HiberUtil.getSession();
session.beginTransaction();
session.delete(toDelete);
session.flush();
session.getTransaction().commit();
}
我想用这样的方法来删除一行记录,目的是想实验下Hibernate能不能不去数据库中加载数据情况下删除一行记录。
实验结果是,现在3.2版本的不行, Hibernate会自动加载数据。
执行过程中,org.hibernate.event.def. DefaultDeleteEventListener类中onDelete(DeleteEvent
event, Set transientEntities)方法中的一句话“Object entity = persistenceContext.unproxyAndReassociate(
event.getObject() );”剥去Proxy外壳而取hit数据库地数据。
哪为什么要这样呢?也就是说不这样会有什么不良后果尼?
分享到:
相关推荐
这是一个关于使用Spring MVC和Hibernate框架实现CRUD操作的源代码示例。CRUD代表创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete),是数据库操作的基本功能。Spring MVC作为Spring框架的一部分,是用于...
Struts2主要负责MVC(Model-View-Controller)模式中的控制层,而Hibernate则是一个强大的持久化框架,用于处理数据库操作。将两者整合,可以构建出高效、结构清晰的Web应用。 在"Struts2+Hibernate的增删改查"项目...
3. **持久化操作**:通过Hibernate的Session接口实现数据的增删改查,例如,使用Session.save()添加新学生,Session.get()和Session.load()查询学生信息,Session.update()和Session.delete()更新或删除学生。...
而Hibernate则是一个对象关系映射(ORM)工具,它允许开发者用Java对象来操作数据库,减少了直接编写SQL语句的工作。 在这个"struts2+hibernate登录实例"中,我们将探讨如何结合这两个框架来实现一个用户登录系统。...
Struts2是一个强大的MVC框架,提供了丰富的功能来处理用户请求,而Hibernate则是一个对象关系映射(ORM)工具,使得Java开发者可以方便地操作数据库。 在整合Struts2和Hibernate进行开发时,首先需要理解这两个框架...
而Hibernate则是一个对象关系映射(ORM)工具,它允许开发者用Java对象来操作数据库,减少了SQL的直接使用,提高了开发效率。 在这个"Structs2和Hibernate简单登录验证实例"中,我们将会看到如何结合这两个强大的...
这个主题涉及到两个核心的技术:Hibernate,一个强大的对象关系映射(ORM)框架,以及Struts1,一个早期的Model-View-Controller(MVC)架构。 **Hibernate** 是Java领域中广泛使用的ORM框架,它允许开发者用面向...
例如,使用`Session.save()`保存新记录,`Session.update()`更新已有记录,`Session.delete()`删除记录,以及使用`Session.load()`或`Session.get()`获取记录。 5. HQL与 Criteria 查询:Hibernate提供了自己的查询...
在Hibernate中,通过Session对象可以直接操作实体,比如`session.save(user)`实现新增,`session.update(user)`更新,`session.delete(user)`删除,而`session.load(User.class, userId)`获取特定ID的用户。...
例如,调用`session.save()`方法来保存新对象到数据库,`session.get()`或`session.load()`来获取已有记录,`session.update()`或`session.merge()`来更新对象,以及`session.delete()`来删除记录。 4. **整合...
Hibernate是一个开源的Java库,它允许开发者用面向对象的方式来操作数据库,从而避免了SQL的直接编写,提高了开发效率和代码可维护性。通过XML配置文件或注解,Hibernate可以自动将Java对象与数据库表进行映射,实现...
例如,使用`Session.save()`方法保存新对象到数据库,`Session.load()`或`Session.get()`方法来获取已存在的对象,`Session.update()`或`Session.merge()`更新对象,以及`Session.delete()`删除对象。 为了确保数据...
例如,使用`session.save()`方法保存对象到数据库,`session.load()`或`session.get()`获取对象,`session.update()`更新对象,`session.delete()`删除对象。 总结,利用Hibernate的反向工程功能,我们可以快速地从...
Struts2是一个强大的MVC(Model-View-Controller)框架,而Hibernate则是一个对象关系映射(ORM)工具,用于简化数据库操作。下面将详细介绍这两个框架在实现增删改查(CRUD)操作时的关键知识点。 1. **Struts2...
总的来说,“springmvc+hibernate demo”项目提供了一个简化的实例,演示了如何在Java Web开发中结合Spring MVC的MVC架构和Hibernate的ORM能力,以实现对数据库的基本操作。通过这个示例,开发者可以快速上手这两个...
而Hibernate则是一个对象关系映射(ORM)工具,简化了数据库操作,使得开发者可以用Java对象来操作数据库。 在这个"Struts/Hibernate应用小例子"中,开发者创建了一个简单的通讯录应用,实现了基本的创建(Create)...
例如,`saveUser()`方法通过`session.save(user)`保存用户对象,`deleteUser()`通过`session.delete(user)`删除用户,`updateUser()`通过`session.update(user)`更新用户,`findUser()`通过`session.load()`或`...
Hibernate 是一个强大的 ORM 解决方案,它可以将 Java 类与数据库表进行映射,简化了 SQL 的操作。通过使用 Hibernate,开发者可以专注于业务逻辑,而无需关心底层数据库的细节。 3. **环境配置** - **依赖管理**...
对于"增"操作,我们需要在Action类中创建一个新的实体对象,通过Hibernate的Session接口进行持久化操作,如`session.save()`,然后提交事务。 "删"操作通常涉及根据某个唯一标识(如ID)获取对象,使用`session....
3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库记录。在SSH整合中,Hibernate通过XML配置文件或注解定义实体类和数据库表之间的映射,简化了数据库操作。增删改...