0

如何从其父级中删除一个实体并将其添加到另一个父级?这是我的代码。TeamList<Player>, 并且Player与其父级有关联:

Player player = entityManager.find(Player.class, playerKey);
Team team1 = player.getTeam();
team1.getPlayers().remove(player); // this action will cascade the deletion of player;
entityManager.merge(team1);

Team team2 = entityManager.find(Team.class, team2Key);
team2.getPlayers().add(player);
entityManager.merge(team2);

这是我想做的,但会导致失败。我以为我可以entityManager.detach(player)在其他团队中使用,但是 GAE jar 中没有此方法(?)。

4

1 回答 1

1

你的意思是这是一个GAE“拥有”的关系?在这种情况下,您可能无法更改“所有者”,因为 GAE 会将其放入播放器的密钥中。

相反,如果您将关系设为“无主”(就像所有其他数据存储的所有关系一样),您显然可以重新设置它。为此,您需要使用GAE/J JPA 插件v2.x。

是的,GAE/J JPA 确实支持 JPA2,如果您使用的是GAE/J JPA 插件v2.x(带有DataNucleus 3.x

于 2012-10-11T15:31:21.647 回答