我正在尝试将一列更新为null,但它给了我错误。我这样做是为了将数据转换为变量然后重置它。但我很有意思,为什么这不起作用:
@Modifying
@Query(value="UPDATE fact_header SET fact_id=null WHERE id=:ids", nativeQuery=true)
public void updateAssignedFact(@Param("ids") int id);
我收到此错误:
Caused by: javax.persistence.TransactionRequiredException: Executing an update/delete query
我看到了一些关于交易的提示。我正在使用2个数据库。
编辑,此代码有效:
@Modifying
@Transactional /* just added this line */
@Query(value="UPDATE fact_header SET fact_id=null WHERE id=:ids", nativeQuery=true)
public void updateAssignedFact(@Param("ids") int id);
答案 0 :(得分:0)
您必须要交易。
根据您的具体环境,有不同的方法:
https://community.jboss.org/wiki/SessionsAndTransactions
您将在调用updateAssignedFact之前开始事务并在之后结束它。可能包括其他操作;我不确切知道你在做什么。我认为你不能(或应该)尝试处理数据实体类中的事务。