Uma classe que se comporta como @Entity e @Embeddable

Eu tenho um relacionamento one-way @OneToMany entre uma classe Team e Player. Gostaria de salvar um objeto de equipe entre seus jogadores. O identificador do jogador é composto pela chave estrangeira da equipe e o índice de lista da seguinte maneira. Eu tenho um mapeamento como este porque eu preciso salvar o Time e seus jogadores comerem ao mesmo tempo.

<code>@Entity
public class Team {

    @Id
    @GeneratedValue
    private Integer id;

    @CollectionOfElements
    @JoinTable(
        name="PLAYER",
        joinColumns=@JoinColumn(name="TEAM_ID"))
    @IndexColumn(name="PLAYER_INDEX")
    private List<Player> playerList = new ArrayList<Player>();

}

@Embeddable
public class Player {

   // Player's getter's and setter's

}
</code>

Então, se eu usar o seguinte

<code>Team team = new Team();

team.getPlayerList().add(new Player());
team.getPlayerList().add(new Player());

session.save(team); // It works!
</code>

Acontece se você usa @CollectionsOfElements, a classe Player precisa de uma anotação @Embeddable, não uma @Entity. O JPA não permite @Entity e @Embeddable ao mesmo tempo. Player também é um @Entity - tem relacionamento com outras entidades.

Alguém tem uma idéia sobre como eu poderia salvar uma equipe e um jogador (ONE WAY RELATIONSHIP) usando CascadeType.PERSIST com @Entity na classe Player em vez de @Embeddable?

Lembre-se que a chave primária COMPOSTO precisa ser atribuída antes de salvar, mas o identificador da equipe e a posição do índice PlayerList podem desempenhar o papel da chave primária composta do Player.

Saudações,

questionAnswers(2)

yourAnswerToTheQuestion