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

  • 相关阅读:
    winphone 开发学习笔记(1)
    Performance testing of web application
    每天几步一点点
    其实做测试也不是想象中的简单
    【2019杭州集训12.09】向量
    【2019杭州集训】12.09训练总结
    【2019杭州集训】12.08训练总结
    burnside定理学习小计
    【CSP-S2019D2T3】树的重心
    【CSP-S2019D1T3】树上的数
  • 原文地址:https://www.cnblogs.com/renjiaqi/p/11613774.html
Copyright © 2011-2022 走看看