1

Hibernateで奇妙な問題を見つけました。

Hibernateフレームワークおよびjson-plugin内のMyJavaEEWebプロジェクト。このような私のコード

private User user;
get(),set()....

public String getUser(){
   if(findUser(...) != null){
       user = findUser(...);
       user.setPasssword("")//!important for the purpose of  does not transmit the password to the front
       return "success";
   } else {
       return "error";
   }
}

この問題は、データベース内のユーザーのパスワードを実行したコードがクリアされたときに発生しました。更新および挿入機能はトリガーされないと確信しています。

理由を知りたいですか?誰がそれを理解して感謝することができますか?

4

1 に答える 1

1

これがHibernateのようなORMの基本原則です。データベーステーブルにマップされ、永続セッションにアタッチされたオブジェクトを操作し、これらのオブジェクトに加えたすべての変更は、データベースに透過的に自動的に記録されます。

Userオブジェクトへの変更をデータベースに記録しないようにする場合は、最初にを使用して、オブジェクトをHibernateセッションからデタッチする必要がありますsession.evict(user)

Hibernateの基本的な(そして非常に重要な)原則を理解していないようです。その優れたドキュメントをお読みください。

于 2012-05-05T12:14:07.750 に答える