0

私のプロファイルクラスでは、

@OneToOne(cascade=CascadeType.PERSIST)
private ProfilePicture profilePic = null;

profilePic を更新する私の方法

public Profile updateUserProfilePic(Profile user) {
    EntityManager em = EMF.get().createEntityManager();
    em.getTransaction().begin();

    Profile userx = em.find(Profile.class, user.getEmailAddress());
    userx.setProfilePic( user.getProfilePic() );

    em.getTransaction().commit();
    em.close();
    return userx;
}

updateUserProfilePic が呼び出されると、データストアに別の profilePic が追加されるだけで、既存の profilePic は置き換えられません。私の実装は正しいですか?プロフィールの profilePic を更新したい。

4

1 に答える 1

1

「一過性」とは、永続的ではなく、切り離されていないことを意味します。

そのバージョンの GAE JPA を使用すると、既存のオブジェクトを再利用したい場合、デタッチされたオブジェクトまたは管理されたオブジェクトが必要になります。

Googleプラグインのv2を使用すると、「id」フィールドが設定された一時オブジェクトのマージを可能にする永続プロパティがあります。

于 2012-05-19T05:00:01.543 に答える