Bom dia!
Estou fazendo o curso de Spring DATA JPA e estou com uma dúvida em relação a anotação ManyToMany.
Tenho a seguinte classe, onde existe essa anotação com a classe UnidadeTrabalho.
O Spring gera a tabela funcionarios_unidades, porém não inclui nenhum valor na mesma.
@Entity
@Table(name = "funcionarios")
public class Funcionario {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String nome;
private String cpf;
private BigDecimal salario;
private LocalDate dataContratacao;
// Faz o select do relacionamento somente se necessário
@ManyToOne(fetch = FetchType.EAGER)
private Cargo cargo;
@ManyToMany()
@JoinTable(name = "funcionarios_unidades",
joinColumns = {@JoinColumn(name = "fk_funcionario")},
inverseJoinColumns = {@JoinColumn(name = "fk_unidade")}
)
private List<UnidadeTrabalho> unidadesTrabalho;
public Funcionario() { }
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public BigDecimal getSalario() {
return salario;
}
public void setSalario(BigDecimal salario) {
this.salario = salario;
}
public LocalDate getDataContratacao() {
return dataContratacao;
}
public void setDataContratacao(LocalDate dataContratacao) {
this.dataContratacao = dataContratacao;
}
public Cargo getCargo() {
return cargo;
}
public void setCargo(Cargo cargo) {
this.cargo = cargo;
}
public List<UnidadeTrabalho> getUnidadesTrabalho() {
return unidadesTrabalho;
}
public void setUnidadesTrabalho(List<UnidadeTrabalho> unidadesTrabalho) {
this.unidadesTrabalho = unidadesTrabalho;
}
@Override
public String toString() {
return "Funcionário " + id +
" -> " + nome +
" - " + cpf +
" - " + salario +
" - " + dataContratacao +
" - " + cargo;
}
}