0

1つの列を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);
4

1 に答える 1

0

トランザクションが必要です。

特定の環境に応じて、これを行うさまざまな方法があります。

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

updateAssignedFact を呼び出す前にトランザクションを開始し、後で終了します。他の操作を含む可能性があります。あなたが何をしているのか正確にはわかりません。データ エンティティ クラス内でトランザクションを処理しようとすることはできない (またはすべきではない) と思います。

于 2013-02-28T15:49:11.607 に答える