0 0

有关 flushmode.auto的问题 flushmode.auto 10

配置文件已经做了如下配置

<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>

但在DAO 中执行下面代码时出现 org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition
异常。

public void saveUserInfo(User user) {
		// TODO Auto-generated method stub
		//getSession().setFlushMode(FlushMode.AUTO);
		//getSession().save(user);
		//getSession().flush();
		getHibernateTemplate().save(user);
	}


网上搜索了一下,除了手动设置FlushMode.AUTO,就是改spring的配置文件。配置文件已经做了如下配置

<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop> 仍然出错,不知道为什么,希望得到解答。谢谢!

2008年7月15日 17:52

2个答案 按时间排序 按投票排序

0 0

采纳的答案

spring事务拦截了update数据库的请求。
有可能是这个方法抛出异常了。-Exception会捕获异常并会滚。+Exception不回滚。
最好把整个配置文件贴出来。有可能不是这个问题。

2008年7月15日 22:28
0 0

用OpenSessionInView了吗,得打开这个才行

2008年7月15日 20:17

相关推荐

    使用Spring引起的错误

    session.setFlushMode(FlushMode.AUTO); ``` 2. **显式调用flush()**:如果你确定某些地方需要立即同步到数据库,可以在代码中显式调用`Session.flush()`。 ```java session.flush(); ``` 3. **使用...

    hibernate二级缓存

    例如,`FlushMode.NEVER`表示从不自动刷新,`FlushMode.AUTO`则会在某些操作后自动刷新。 在工程示例中,`FlushMode.doc`可能详细介绍了各种FlushMode的使用场景和效果,而`2级缓存.doc`应该包含了二级缓存的配置和...

    如何解决hibernate自动更新实体类的问题共5页.pd

    3. **禁用脏检查**:可以通过配置`hibernate.archive.autodetection`属性,将其值设为空或不包含`change`,防止Hibernate自动检测实体类的变更。 4. **控制Flush模式**:可以设置`Session`的flush模式,如`...

    Open_Session_In_View详解.doc

    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker ...

    hibernate错误解决方案

    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker ...

    HIbernate Session 详解

    - **FlushMode.AUTO**:自动清理缓存,默认值。在执行查询操作、提交事务或显式调用 `flush()` 方法时,都会触发缓存清理。 - **FlushMode.COMMIT**:在提交事务时清理缓存。 - **FlushMode.NEVER**:永不自动清理...

    Hibernate中文教程

    - 解决方案:根据应用场景选择合适的锁机制,并合理配置Hibernate的相关参数。 #### 七、总结 通过本教程的学习,读者能够深入了解Hibernate的工作原理和使用方法,掌握其核心特性和高级功能,从而能够在实际项目...

    Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00

    #### 四、整合中常见的问题及解决方法 **4.1 使用Myeclipse整合时在工程中加入各框架的顺序** 当使用MyEclipse进行整合开发时,建议按照以下顺序添加各个框架的库文件: 1. 添加Struts相关的库文件。 2. 添加...

    Criteria的完整用法.pdf

    - **FlushMode**:`Criteria`还允许设置`FlushMode`,控制何时将缓冲区中的更改同步到数据库,影响事务管理。 #### 三、实战案例 1. **创建Criteria实例** ```java Session session = HibernateUtil....

    SSH整合环境 配置

    `sessionFactoryBeanName`参数指定了SessionFactory的bean名称,这里是`sessionFactory`,`flushMode`参数设置为`AUTO`,意味着在需要时自动提交事务。 3. **Struts2配置**: - `StrutsPrepareAndExecuteFilter` ...

    快速了解Hibernate中的Session

    - Transaction的`commit()`调用:在提交事务前,若设置为`FlushMode.COMMIT`或`AUTO`,Session会先清除缓存,再执行SQL提交事务。 - 查询操作:`find()`或`iterate()`时,如果对象属性有变动,会先清理缓存以更新...

    hibernate提升性能

    例如,`Session.flushMode()`和`Session.setBatchSize()`方法。 2. 延迟加载:Hibernate的懒加载机制可以降低内存消耗,但过多的延迟加载可能导致大量小查询,增加数据库压力。合理设计实体关系,适时使用立即加载...

    HibernateBatchUpdateExample

    除了这种方式,还可以使用Query或Criteria API的`setFlushMode(FlushMode.MANUAL)`来手动控制批处理。或者,如果你需要更底层的控制,可以使用`Session`的`doWork()`方法直接执行SQL批处理。 在`...

    Hibernate中Criteria的完整用法

    7. **`FlushMode`**:用于指定会话何时刷新数据到数据库。 8. **`LockMode`**:用于指定获取数据时的锁定级别,如`READ`和`WRITE`。 #### 三、使用示例 ##### 1. 创建基本的`Criteria` ```java Session sess = ...

    spring_demo:Spring MVC示范项目

    Spring MVC Hibernate Demo Hibernate 配置 数据库实体必须设置以下注解 @Entity @Id 自增主键必须设置以下注解,否则报错 @GeneratedValue(strategy = GenerationType.IDENTITY) ... &lt;param&gt;flushMode&lt;/param-nam

    Hibernate_demo

    4. 对于大数据量的操作,考虑使用批处理,如Session的flushMode和 batchSize属性。 总结,"Hibernate_demo"是一个生动的实例,展示了如何在实际项目中运用Hibernate5。通过分析这个项目,我们可以更好地理解和掌握...

    Criteria使用方法

    - **设置Session冲刷模式**:通过`setFlushMode(FlushMode mode)`设置Session冲刷模式。 - **设置数据库锁模式**:使用`setLockMode(LockMode mode)`设置数据库锁模式。 #### 五、小结 通过上述介绍,我们可以看出...

    struts2.3+spring3.1.2+hibernate4.1.6 配置说明

    配置中包含了`sessionFactoryBeanName`、`singleSession`和`flushMode`等参数,用于指定SessionFactory的bean名称、是否使用单个Session以及flush模式。 在`web.xml`中,Struts2的配置通过`...

    Hibernate3.5官方开发文档pdf + html

    12. **事务管理**:讲解Hibernate的事务API,包括Transaction接口和FlushMode,以及如何与其他事务管理机制(如JTA)集成。 13. **事件监听器**:学习如何使用Hibernate事件系统来实现定制的行为,如预加载、预更新...

Global site tag (gtag.js) - Google Analytics