Hibernate3的缺点,一级缓存的强引用的问题,所以在做批量查询和插入操作的时候需要执行session.flush和session.clear两个操作。
flush()使用 :(在spring声明事务的情况下)
若A引用 了B,现在同时增加这两个类,如果你不用的hibernate自动处理机制 ,则需要在save(B)后,调用 flush()强行的写入数据库,再将返回的主键写入A中,再save(A),否则将报出找不到B的错误,这是因为声明式事务的方法是在方法结束后一起提交,因此会出现异常。
clear() 使用
在实际过程中可能会出现这样的情况,需要创建A,A完全的copy自B(此时的B是根据ID get()得到的),而A.B又是属于同一张表的实体,因此在save(A)时,会出现异常,提示你有两个相同的数据,却是不同的标识,异常抛出后无法正常的保存,
那怎么解决呢,这时候你就需要在save()执行前加上一个clear()了,如:
getHibernateTemplate().clear(); getHibernateTemplate().save(t11);
相关推荐
gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...
本文将详细介绍`getHibernateTemplate()`的使用方法,并通过具体的代码示例帮助读者更好地理解和应用这些方法。 #### `getHibernateTemplate()`简介 `getHibernateTemplate()`方法是Spring提供的一个用于执行...
`getHibernateTemplate()`是Spring框架与Hibernate集成时提供的一个便捷方法,它封装了对Hibernate Session的操作,使得在Service或DAO层进行数据库交互变得更加简单。 在给定的标题和描述中,提到的是`...
`getHibernateTemplate()`方法是Spring框架中用于整合Hibernate ORM的一个关键接口,它是`HibernateDaoSupport`类的一个重要方法。在Spring MVC(S2SH,即Struts2、Spring和Hibernate的组合)架构中,`...
本文将详细介绍如何利用`getHibernateTemplate()`方法结合Spring框架进行分页查询和模糊查询。 #### 二、关键概念解释 1. **Hibernate**: 是一个开放源代码的对象关系映射(ORM)框架,它提供了从Java类到数据库表...
以上介绍了通过`getHibernateTemplate()`方法执行查询的不同方式,包括简单的HQL查询、带有参数的查询、模糊查询以及基于实例对象的查询等。这些方法在实际开发中非常实用,可以帮助开发者更灵活地处理各种查询需求...
以上就是`HibernateTemplate`中常用的查询方法及其实现原理的详细介绍。这些方法极大地提高了开发效率,并且使得数据访问层的实现更加简洁和灵活。通过合理运用这些方法,开发者可以在实际项目中更加高效地处理数据...
"JSP 中调用 DAO 的 getHibernateTemplate() 时报空指针异常的解决方法" 在整合 SSH 框架时,经常会遇到 JSP 中调用 DAO 的 getHibernateTemplate() 时报空指针异常的错误。本文将讲解这个问题的原因和解决方法。 ...
下面将详细介绍HQL语言中的一些常用的方法及其应用场景。 #### 1. find 方法 `find` 方法是HQL中最基本也是最常用的查询方法之一,通过它可以执行简单的查询操作。例如: - **无参数查询**:可以直接执行如 `this...
getHibernateTemplate().clear(); } } ``` 2. **解决方案**:设计一个基础的数据访问层`AHBaseDaoImpl`,确保每次基础功能调用后都能将变更同步到数据库并清除会话缓存。这种方式能够有效避免因缓存问题而导致...
return (Card)this.getHibernateTemplate().get(Card.class, cardPass); } @Override public void updateCard(Card card) { // TODO Auto-generated method stub this.getHibernateTemplate().update(card...
### Spring框架中HQL查询方法详解 在Spring框架与Hibernate技术结合使用时,HQL(Hibernate Query Language)作为对象查询语言被广泛应用于数据查询操作之中。本文将详细解析Spring框架中常用的HQL查询方法及其应用...
本文档将详细介绍如何在Spring环境中运用HQL进行数据查询操作,包括基本查询、参数绑定以及命名查询等高级特性。 #### 一、基本查询方法 在Spring框架中,`HibernateTemplate`类提供了多种方法来执行HQL查询,这些...
当使用Hibernate的`getHibernateTemplate().save()`方法尝试保存数据时,如果数据没有被保存到数据库,可能有以下几个原因: 1. **事务管理**:在默认情况下,Hibernate不会自动开启和提交事务。如果在代码中没有...
本文将重点介绍如何利用Spring整合Hibernate进行数据库操作的方法,并提供一系列实用的例子。 #### 二、Spring集成Hibernate的关键组件 ##### 1. HibernateTemplate `HibernateTemplate`是Spring提供的用于封装...
在上述示例中,开发者期望通过调用`session.flush()`方法来显式提交事务,但实际上这种做法并不符合Spring的事务管理机制。Spring管理的事务默认情况下是在`HibernateTemplate`执行完毕后自动提交的。如果在`...
#### 一、背景介绍 在现代Web应用开发中,特别是基于Java平台的企业级应用,Struts2、Spring 和 Hibernate 是非常重要的三大框架。其中,Struts2 负责前端表现层逻辑的控制,Spring 提供了强大的业务逻辑层管理和...
在更新或删除数据时,必须调用getHibernateTemplate().flush(); 且在web.xml中添加 <filter>openSessionInViewFilter <filter>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter <param>...
本文将介绍如何使用 Hibernate 执行原生 SQL 语句。 为什么需要执行原生 SQL 语句 在实际开发中,我们可能需要执行一些复杂的 SQL 查询,或者使用数据库特有的函数和语句,而这些操作在 HQL 中不支持。此时,我们...