java - 为什么 JPA-Query 删除实体会导致 com.objectdb TransactionRequiredException?

标签 java jpa objectdb

我正在尝试删除数据库中的对象。

我的第一次尝试是:

 public void removeAll(){
    TypedQuery<anObject> query = em.createQuery(
            "DELETE FROM tablName",
            anObject.class);
    query.executeUpdate();
}

这给了我一个异常(exception),所以我查看了反对网站上的示例并更新了我的代码以类似于他们的代码:

  public int removeAll(){
        int deleted = em.createQuery(
                "DELETE FROM tableName").executeUpdate();
    }

我遇到了同样的异常:

com.objectdb.o._TransactionRequiredException: Attempt to run update query when no transaction is active

有人知道我能做些什么来解决吗?

最佳答案

我在这里添加了一个答案,以防其他人偶然发现这个问题,这可能会有所帮助。

我忘了添加 @Transactional 符号。

最终的代码片段如下所示:

   @Transactional
public void removeAll(){
    TypedQuery<anObject> query = em.createQuery(
            "DELETE FROM tableName",
            anObject.class);
    query.executeUpdate();
}

关于java - 为什么 JPA-Query 删除实体会导致 com.objectdb TransactionRequiredException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31772117/

相关文章:

Java 泛型与两种泛型父类(super class)型的混淆

java - 下载 Oracle 11 的 Adfm.jar

java - Spring Data JPA - 如何使用组合键插入子实体?

java - JPA native 查询与 'pure' JPA 持久性

java - 使用嵌入式 ObjectDB 进行多线程处理

java - 创建一个 Jar 并向其中添加多个流

java - 具有嵌套属性的 JPA MapKey

java - 持久对象异常 : detached entity passed to persist

java - 用户异常 : Attempt to open odb database file that is currently in use by another process

spring - 是否可以在 Spring Boot 应用程序中使用 ObjectDB