2012-10-11 52 views
0

如何從其父項中移除一個實體並將其添加到另一個父項? 這是我的代碼。 TeamList<Player>Player有關聯其父:如何使用JPA更改GAE數據存儲中某個實體的父項?

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(?)中不可用。

回答

1

你的意思是這是GAE「擁有」關係?在這種情況下,您可能無法更改「所有者」,因爲GAE會將其放入玩家關鍵字中。

如果您將關係設置爲「無主」(就像所有其他數據存儲區的所有關係一樣),那麼您顯然可以將其重新還原。你需要使用GAE/J JPA plugin v2.x。

是的GAE/J JPA不支持JPA2,如果您使用的GAE/J JPA plugin V2.X(與DataNucleus 3.x

+0

我怎麼能使其 「無主」? – Roberto

+1

http://datanucleus.blogspot.co.uk/2011/11/gaej-and-datanucleus-v3-part-2.html – DataNucleus

+0

我沒有使用JPA插件v2.x,有沒有另外一種方法來做到這一點? – Roberto

相關問題