`
a137268431
  • 浏览: 157793 次
文章分类
社区版块
存档分类
最新评论

解决InvalidDataAccessApiUsageException: Executing an update/delete query

 
阅读更多
 @Modifying
    @Query("delete from Task task where task.user.id=?1")
    void deleteByUserId(Long id);

出现Executing an update/delete query的原因是没有事务
处理事务可以采用两种方法:

第一种直接:

 @Modifying@Transactional
    @Query("delete from Task task where task.user.id=?1")
    void deleteByUserId(Long id);

在后面加上@Transactional让spirng来管理事务


第二种可以采用AOP声明式事务来管理:

<tx:advice id="dao" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="deleteByUserId*" read-only="false"/>
			
			 <!--hibernate4必须配置为开启事务 否则 getCurrentSession()获取不到session-->  
			 <tx:method name="*"  propagation="REQUIRED" /><!-- 他就是允许所有的方法都有session <tx:method name="*"  propagation="REQUIRED" />-->
			
		</tx:attributes>
	</tx:advice>
	
	<aop:config>
		<aop:pointcut id="daoMethods" expression="execution(* com.hblb.develop.repository..*.*(..))"/><!--第二种 expression="execution(* com.service.*.*(..))"  。。代表service下的所有  -->
		<aop:advisor advice-ref="dao" pointcut-ref="daoMethods" />
	</aop:config> 

这样就可以解决没有事务而出现的InvalidDataAccessApiUsageException: Executing an update/delete query

分享到:
评论

相关推荐

    org.springframework.dao.InvalidDataAccessApiUsageException

    为了避免 `org.springframework.dao.InvalidDataAccessApiUsageException` 的发生,可以采取以下几种解决方案: 1. **显式配置事务管理**: 在Spring的配置文件(例如 `applicationContext.xml`)中显式地配置事务...

    Spring的DataAccessException

    7. InvalidDataAccessApiUsageException:一个数据访问的 JAVA API 没有正确使用,例如必须在执行前编译好的查询编译失败了。 8. invalidDataAccessResourceUsageException:错误使用数据访问资源,例如用错误的 SQL...

    hibernate错误解决方案

    ### Hibernate 错误解决方案 #### 一、概述 在使用Hibernate框架进行开发的过程中,经常会遇到各种各样的异常问题。这些问题可能会导致程序无法正常运行,甚至影响到系统的稳定性。本文将针对几个常见的Hibernate...

    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 ...

    HibernateTemplate源代码

    throw new InvalidDataAccessApiUsageException("SessionFactory required for HibernateTemplate"); } // 获取当前会话 Session session = sessionFactory.getCurrentSession(); // 设置会话配置 ...

    Spring boot jpa 删除数据和事务管理的问题实例详解

    @Query("delete from ChoiceAnswer c where c.questionId = ?1") public void deleteByQuestionId(Integer questionId); ``` 这种方式可以删除指定的数据,但是在实际项目中,我们需要考虑事务管理的问题。 二、...

    Hibernate事务管理.

    这时,可能会遇到`InvalidDataAccessApiUsageException`异常,提示写操作不允许在已开启的事务之外进行。 为了解决这个问题,通常建议在Service层使用Spring的`@Transactional`注解来管理事务,这样可以更精确地...

    SPRING API 2.0.CHM

    InvalidDataAccessApiUsageException InvalidDataAccessResourceUsageException InvalidDestinationException InvalidInvocationException InvalidIsolationLevelException InvalidMetadataException ...

    hibernate中文教程参考文档

    Hibernate的异常体系基于JDBC异常,主要包括PersistenceException、ConstraintViolationException、InvalidDataAccessApiUsageException等,理解这些异常有助于调试和优化代码。 **10. 性能优化** 优化Hibernate...

Global site tag (gtag.js) - Google Analytics