Comment faire pour conserver les Collections/Liste à l'intérieur d'un objet à l'aide de JPA

J'essaie de conserver une Liste à l'intérieur d'un objet Équipe. Je ne peux pas obtenir JPA pour persister pour moi. Après avoir lu quelques posts, on dirait que vous êtes nécessaire pour effectuer une itération à travers la Liste des<>, et persistent à chacun d'eux individuellement. Cela ne semble tout simplement pas le droit de me. Il doit y avoir moyen de JPA persister que la Liste d'auto-magiquement.

Ai-je raté un facile JPA-chemin de profondément la persistance de ces objets?

Classe d'équipe:

@Entity
@Table(name = "rahCLUB_TEAM")
public class Team implements Serializable{
....
@OneToMany(fetch=FetchType.EAGER, mappedBy = "team", cascade={CascadeType.PERSIST,  CascadeType.REMOVE})
    private List<Player> players;
...
}

Joueur de classe:

@Entity
@PrimaryKeyJoinColumn(name="id")
@Table(name = "rahCLUB_PLAYER")

public class Player extends Individual implements Serializable{
 ...
   @ManyToOne
   @JoinTable(name="rahCLUB_PLAYER_TEAM_LINK")
   private Team team;
 ...
 }

JPAClubDAOTest:

//create a valid team code
 ...
 Team team = new Team();
 team.setName("Pittsburgh Pirates");
 team.setLeague("NFL");
 team.setGroup("group");
 team.setLevel("AAA");

 Player player = new Player();
 player.setFirstName("firstNameA");
 player.setLastName("lastNameA");
 player.setEmail("[email protected]");
 player.setLogin("loginA");
 player.setJerseyNo(22);
 player.setPosition("fullback");
 Date dob  =new SimpleDateFormat("dd/MM/yyyy").parse("21/11/1986");
 player.setDob(dob);

 Player playerb = new Player();
 playerb.setFirstName("firstNameB");
 playerb.setLastName("lastNameB");
 playerb.setEmail("[email protected]");
 playerb.setLogin("loginB");
 playerb.setJerseyNo(15);
 playerb.setPosition("widereceiver");
 Date dobb  =new SimpleDateFormat("dd/MM/yyyy").parse("06/06/1986");
 playerb.setDob(dobb);

 ArrayList<Player> players = new ArrayList<Player>();
 players.add(player);
 players.add(playerb);

 team.setPlayers(players);

 Team queryTeam = em.find(Team.class, team.getId());
 log.debug("checking coach...");

D'échec:

assertTrue(queryTeam.getPlayers().size()>0);
assertNotNull(queryTeam.getPlayers().get(0));
assertTrue(queryTeam.getPlayers().size()==2);

Code à ajouter ceci:

@Override
public void createTeam(Team team) throws ClubDAOException {
em.persist(team);
for (Player player : team.getPlayers())
{
   this.createPlayer(player);
   //em.persist(player);
}
Où est le code de l'ajout de joueurs à l'équipe? À lire: c'est la troisième fois aujourd'hui je réponds à cette question: stackoverflow.com/questions/19896025/...
Lisez ce que votre code ne. Il n'est pas de créer n'importe quel joueur. Il parcourt la liste vide de joueurs de votre nouvelle équipe. À un certain moment, vous avez besoin d'avoir new Player() dans votre code pour créer un Joueur.
Lorsque je passe dans l'objet de l'Équipe, il a une Liste déjà existante des Joueurs. J'appelle new Player() dans la région, j'ai écrasé.. je vais copier coller dans le code plus.
OK. Donc, le vote pour la fermer parce que c'est un doublon de stackoverflow.com/questions/19896025/.... Vous avez ajouté les joueurs de l'équipe, mais je n'ai pas mis l'équipe des joueurs.
D'accord pour fermer.. mais peut-on combiner certains de cela? Le titre "Comment faire pour conserver les Collections/Liste à l'intérieur d'un objet à l'aide de JPA" est beaucoup plus descriptive que "la Compréhension des annotations et JPA(hibernate)"

OriginalL'auteur technocrat | 2013-11-11