【问题标题】:GAE + JPA + updating entity is losing other entity relationGAE + JPA + 更新实体正在失去其他实体关系
【发布时间】:2014-11-24 21:52:53
【问题描述】:

您好,我是使用 GAE 和 JPA 的新手,在尝试更新实体时遇到了一些问题。我复制下一个代码示例:

@Entity
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;

private String userName;

@ManyToOne(fetch=FetchType.LAZY, cascade = CascadeType.ALL)
private Address address;
}

当我在数据存储中保存用户实例时,它的存储没有问题。 在此之后,我从数据存储中检索此实例,然后设置一个新的用户名并尝试更新它。

public User updateUser(User user) {
   EntityManager mgr = getEntityManager();
   if (!containsUser(user)) {
      throw new EntityNotFoundException("Object does not exist");
   }
   mgr.persist(user);
}

执行更新,新的用户名存储在数据存储中,但由于地址字段有 FetchType.LAZY,我丢失了更新的持久值。 如何在不丢失其他值的情况下更新某些字段?

【问题讨论】:

    标签: google-app-engine jpa


    【解决方案1】:

    尝试以相同的方法获取和保存实体,否则您将丢失会话并且管理器会将惰性属性识别为空属性。

    希望对你有帮助!

    【讨论】:

    • 非常感谢。它可以用相同的方法做所有事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多