JPA中的一对一关系(AppEngine)

时间:2012-05-18 14:00:37

标签: google-app-engine jpa

在我的个人资料班中,我有

@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。

1 个答案:

答案 0 :(得分:1)

“瞬态”意味着不持久而不分离。

使用该版本的GAE JPA,如果您希望重用现有对象,则需要在其中使用分离或托管对象。

使用Googles插件的v2,有一个持久性属性,允许合并设置了“id”字段的瞬态对象。