J2EEのEntity Manager経由でDBから取得したオブジェクトを、そのオブジェクトがEntity Managerの管理下にある状態の時に変更すると、それがDBに反映されるので注意が必要である。
例えば、
User user = entityManager.find(User.class, id);
として取得した user オブジェクトに対して、
user.setName("Taro");
とすると、この変更はトランザクション終了時などに自動的にDBに反映される。DBに反映されるタイミングについては、以下のページが分かりやすかった。
http://enterprisegeeks.hatenablog.com/entry/2015/01/19/142730
http://itref.fc2web.com/java/jpa/
上述のことを意識しておかないと、メモリ上のオブジェクトの情報を変更しただけのつもりで、実際にはその変更はDBにも反映されて「あれ?DBのデータは変更した覚えがないけど・・・」とかなってしまう。