@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` 的发生,可以采取以下几种解决方案: 1. **显式配置事务管理**: 在Spring的配置文件(例如 `applicationContext.xml`)中显式地配置事务...
7. InvalidDataAccessApiUsageException:一个数据访问的 JAVA API 没有正确使用,例如必须在执行前编译好的查询编译失败了。 8. invalidDataAccessResourceUsageException:错误使用数据访问资源,例如用错误的 SQL...
### Hibernate 错误解决方案 #### 一、概述 在使用Hibernate框架进行开发的过程中,经常会遇到各种各样的异常问题。这些问题可能会导致程序无法正常运行,甚至影响到系统的稳定性。本文将针对几个常见的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 ...
throw new InvalidDataAccessApiUsageException("SessionFactory required for HibernateTemplate"); } // 获取当前会话 Session session = sessionFactory.getCurrentSession(); // 设置会话配置 ...
@Query("delete from ChoiceAnswer c where c.questionId = ?1") public void deleteByQuestionId(Integer questionId); ``` 这种方式可以删除指定的数据,但是在实际项目中,我们需要考虑事务管理的问题。 二、...
这时,可能会遇到`InvalidDataAccessApiUsageException`异常,提示写操作不允许在已开启的事务之外进行。 为了解决这个问题,通常建议在Service层使用Spring的`@Transactional`注解来管理事务,这样可以更精确地...
InvalidDataAccessApiUsageException InvalidDataAccessResourceUsageException InvalidDestinationException InvalidInvocationException InvalidIsolationLevelException InvalidMetadataException ...
Hibernate的异常体系基于JDBC异常,主要包括PersistenceException、ConstraintViolationException、InvalidDataAccessApiUsageException等,理解这些异常有助于调试和优化代码。 **10. 性能优化** 优化Hibernate...