java - 获取 TransactionRequiredException:在删除时执行更新/删除查询
问题描述
import javax.persistence.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
@Repository("EmployeeGroupDao")
public class EmployeeGroupJpaDao implements EmployeeGroupDao {
@Transactional
public int deleteAll() {
StringBuilder buf = new StringBuilder();
buf.append("DELETE FROM EmployeeGroup");
Query query = getEntityManager().createQuery(buf.toString());
int result = query.executeUpdate();
LOG.info("Numbers of records deleted " + result);
return result;
}
收到以下错误-我确实在方法上有@Transactional。使用 oracle 数据库。
Getting an error
javax.persistence.TransactionRequiredException: Executing an update/delete query
at org.hibernate.jpa.spi.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:71) ~[hibernate-entitymanager-4.3.10.Final.jar:4.3.10.Final]
at EmployeeGroupJpaDao.deleteAll(EmployeeGroupJpaDao.java:34) ~[classes/:na]
还尝试了 import javax.transaction.Transactional 而不是 org.springframework.transaction.annotation.Transactional 和同样的错误
解决方案
推荐阅读
- mongodb - MongoDB (v. 3.6.8):尽管事先工作,程序在全局初始化中失败
- powershell - 当 PowerShell\7\ 环境路径变量位于 PowerShell\v1.0\ 之前时,Ansible Playbooks 不会运行
- angular - MSAL2 和 .Net 5,调用服务器 WebApi 时不断收到 401
- vb.net - 如何在 Visual Basic 中单击/触摸后播放一系列连续图像
- python - 如何在 Jupyter lab/Jupyter Notebook 中获得缩进线?
- javascript - 验证来自没有令牌的前端的请求
- mqtt - Azure Sphere - Quectel BG96 LTE AT 命令 - Azure IoT 设备配置服务 - MQTT
- javascript - ReactJS 不会渲染所有的 JSX
- c# - 由于 obj.\x64\debug\*.exe 被锁定导致 Fody 错误
- javascript - 在 JS 中,为什么有时应该在“< >”中定义一个函数?