hibernate注释本机更新到一列

时间:2013-02-28 14:33:32

标签: hibernate spring-data-jpa

我正在尝试将一列更新为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);

1 个答案:

答案 0 :(得分:0)

您必须要交易。

根据您的具体环境,有不同的方法:

https://community.jboss.org/wiki/SessionsAndTransactions

您将在调用updateAssignedFact之前开始事务并在之后结束它。可能包括其他操作;我不确切知道你在做什么。我认为你不能(或应该)尝试处理数据实体类中的事务。