为什么 JPA-Query 删除实体会导致 com.objectdb TransactionRequiredException?
Why is JPA-Query to delete Entities resulting in a com.objectdb TransactionRequiredException?
我正在尝试删除数据库中的对象。
我的第一次尝试是:
public void removeAll(){
TypedQuery<anObject> query = em.createQuery(
"DELETE FROM tablName",
anObject.class);
query.executeUpdate();
}
这给了我一个例外,所以我查看了反对网站上的示例并更新了我的代码以类似于他们的代码:
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();
}
我正在尝试删除数据库中的对象。
我的第一次尝试是:
public void removeAll(){
TypedQuery<anObject> query = em.createQuery(
"DELETE FROM tablName",
anObject.class);
query.executeUpdate();
}
这给了我一个例外,所以我查看了反对网站上的示例并更新了我的代码以类似于他们的代码:
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();
}