Computer Science/Web Programming

[JPA] javax.persistence.TransactionRequiredException: Executing an update/delete query

2021. 2. 9. 13:06

Problem

public int delete(String tableName, String sql) {
    EntityManager entityManager = entityManagerFactory.createEntityManager();
    String qBase = "DELETE FROM " + tableName + " ";
    int value = -1;
    value = entityManager.createNativeQuery(qBase+sql).executeUpdate();
    entityManager.close();
    return value;
}

 

Solution

위 코드에 새로운 코드를 추가하여 문제를 해결할 수 있다.

public int delete(String tableName, String sql) {
    EntityManager entityManager = entityManagerFactory.createEntityManager();
    entityManager.getTransaction().begin(); //Update
    String qBase = "DELETE FROM " + tableName + " ";
    int value = -1;
    value = entityManager.createNativeQuery(qBase+sql).executeUpdate();
    entityManager.getTransaction().commit(); //Update
    entityManager.close();
    return value;
}

 

Reference

728x90
반응형