2017-05-26 8 views
0

私はSpring Boot、Hibernate、Spring Data Jpaを使用したマイクロサービスを持っています。問題は、エンティティを保存しようとすると、エンティティが新しいときにのみトランザクションをコミットしますが、エンティティを更新するとき(IDがnullでないとき)はコミットしないことです。エンティティを作成または更新するときに同じコードを使用しているので奇妙です。Repository.saveは、作成時、コミット時のみコミットします

私はログを有効にしました。エンティティの作成時にのみ挿入文が表示されます。何かヒント?

@Transactional 
public class MyEntityService { 

    @UserCanCud 
    public Entity save(final Entity entity) { 
     Assert.notNull(entity, "The entity to store cannot be null"); 
     return repository.save(entity); 
    } 
} 

PS:私は、エンティティを返すとき、それが実体「更新」ですが、私は再びそれを取得した場合、値が更新されていません。

UserCanCudは、ユーザーがそのエンティティに対してcud操作を実行できるかどうかをチェックします。

+1

詳細をご記入ください。設定?コードはどのように呼び出されますか?取引が開かれる場所は? – StanislavL

+0

'entity'オブジェクトがなぜ' final'とマークされているのか分かりますか? – harshavmb

+0

こんにちはharshavmb、特定の理由はありません、あなたはそれが問題になると思いますか? – Manuelarte

答えて

0

最後に私は問題を起こしました.... pojoには@Immutableという注釈が付いていました。

関連する問題