0
@Entity
public class Group
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Key id;
}


@Entity
public class User
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Key id;

    @ManyToOne(fetch = FetchType.LAZY)
    private Group group;
}

在以下代码之后:

EntityManager entityManager = EntityManagerFactoryHolder.getEntityManagerFactory().createEntityManager();
Group group = new Group();
entityManager.persist(group);
User user = new User();
user.setGroup(group);
entityManager.persist(user);
entityManager.close();

我收到以下错误

检测到尝试将 User(28) 建立为 Group(27) 的父级,但 Group(27) 标识的实体已在没有父级的情况下保留。一旦对象被持久化,就不能建立或更改父对象。org.datanucleus.store.appengine.DatastoreRelationFieldManager$ChildWithoutParentException:检测到尝试将 User(28) 建立为 Group(27) 的父级,但 Group(27) 标识的实体已在没有父级的情况下持久化。一旦对象被持久化,就不能建立或更改父对象。

4

1 回答 1

0

似乎这只适用于反向关联。添加了 @OneToMany 设置为 Group 对象,它现在可以工作了。

于 2013-02-09T13:19:12.797 回答