0

私は1つのメソッドを持ち、他のメソッドuserupdateの中で呼び出します。内部メソッドuserupdate()まず私はデータベースからのユーザーエンティティを持っているとデータの後にその名前を変更します。今、私はメソッド内の同じユーザーIDのユーザーエンティティを取得しようとしましたが、正常に問題を起こしましたが、私は古いユーザー名には新しい更新ユーザー名がありません。私は分離レベルREAD_UNCOMMITTEDでこれを試しました。同じトランザクションでコミットされていないデータを読み取る方法

 Transactional(isolation=Isolation.READ_UNCOMMITTED) 
     public void do(){ 
     User user = getUser(userId); 
     print(user.getName());//print old name Anuj 
    } 

private void userupdate(userId){ 
    User user = finduserOnbaseUserId(userId); 
    user.setName("updatedName"); 
} 

do()内のユーザーエンティティを更新する方法を教えてください。前もって感謝します 。

答えて

0

春は同じクラスのメソッド呼び出しをインターセプトできないため、この場合はトランザクションが適用されないため、これが機能しない理由があります。更新メソッドのための新しいBeanが必要であり、このクラスに注入し、正常に実行されているコードです。これを参照しています。link

関連する問題