zoukankan      html  css  js  c++  java
  • javax.persistence.TransactionRequiredException: Executing an update/delete query

    最近在springboot中整合jpa的时候碰到一个异常,异常如下

    javax.persistence.TransactionRequiredException: Executing an update/delete query
    at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1496)

    该异常一般出现在执行更新删除操作时出现,jpa要求执行这些操作时需要加上事务管理
    当使用@Query调用自定义sql时在执行方法前加上@Modifying@Transactional一般就能解决
    但是开发过程中由于反复出现调用自定义sql的场景,所以为了调用方便决定利用EntityManager.Query做个封装,然后就出问题了…利用EntityManager执行update语句即使加上了@Modifying@Transactional仍然出现Executing an update/delete query的异常,在反复查找后终于找到一个解决方案,如下:

    public int sqlUpdate(String sql,String[] arrs){
    EntityManager em=emf.createEntityManager();
    Query query = em.createNativeQuery(sql);
    for(int i = 0; i < arrs.length;i++){
    query.setParameter(i+1,arrs[i]);
    }
    em.getTransaction().begin();
    int num = query.executeUpdate();
    em.getTransaction().commit();
    em.close();
    return num;
    }


    利用EntityManager内的事务控制器进行事务管理
    ————————————————
    版权声明:本文为CSDN博主「言一木」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_37769855/article/details/91437305

  • 相关阅读:
    delphi 如何让ScrollBox的内容与滚动条一起实时滚动
    C# Wpf集合双向绑定
    C# Wpf异步修改UI,多线程修改UI(二)
    C# 自定义线程修改UI(一)
    WPF FindName()查找命名注册的元素
    数据绑定
    WPF绑定Binding及模式
    WPF-Binding的源
    WPF-Binding对数据的检验
    WPF-数据转换
  • 原文地址:https://www.cnblogs.com/renjiaqi/p/11613774.html
Copyright © 2011-2022 走看看