Olá, me deparei com uma situação e não estou conseguindo enxergar a solução pra o relacionamento dessas entidades(talvez seja bem fácil e não estou visualizando).
É o seguinte, tenho uma entidade Turma que tem uma lista de alunos (@manyToMany), porém quero fazer uma lista de chamada(lista de presença) colocando a data e ao selecionar a turma trazer os alunos dessa turma.
Entidade TURMA
@Entity
public class Turma implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long codigo;
@NotNull(message = "*O campo Nome é de preenchimento obrigatório")
private String nome;
private String hora_inicio;
private String hora_fim;
@NotNull(message = "*O campo Vagas é de preenchimento obrigatório")
private int vagas;
@NotNull(message = "*O campo Professor é de preenchimento obrigatório")
private String professor;
@ManyToMany
@JoinTable(
name="AlunosTurmas", //nome da nova tabela
uniqueConstraints = @UniqueConstraint(columnNames = { "codigo_turma", "id_aluno" }), //id curso e turma são únicos
joinColumns = @JoinColumn(name = "codigo_turma" ), //chave estrangeira de turma
inverseJoinColumns = @JoinColumn(name = "id_aluno") //chave estrangeira de aluno
)
private List<Aluno> alunos;
Entidade Aluno
@Entity
public class Aluno implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull(message = "*O campo Nome é de preenchimento obrigatório")
private String nome;
private String apelido;
@ManyToMany
@JoinTable(
name="AlunosTurmas",
uniqueConstraints = @UniqueConstraint(columnNames = { "codigo_turma", "id_aluno" }),
joinColumns = @JoinColumn(name = "id_aluno"),
inverseJoinColumns = @JoinColumn(name = "codigo_turma")
)
private List<Turma> turmas;