Bom dia.
Estou com um problema no Hibernate.
O problema é o seguinte quero criar três tabelas. Uma escola, composicao e vagas. Porém a maneira que fiz o mapeamento está criando duas tabelas a mais: vagas_composicao e vagas_escola.
Como eu deveria mapear para que ficasse apenas Escola, Vagas e Composicao?
Segue o ER para que vocês possam compreender melhor.
Segue as Classes:
Escola.java
package br.com.matricula.modelo;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
@Entity
@SequenceGenerator(name = "escolaSequence", sequenceName = "escolaSequence")
public class Escola implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="escolaSequence")
@Column(name="id_escola")
private int id;
private int inep;
private String nome;
private String bairro;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getInep() {
return inep;
}
public void setInep(int inep) {
this.inep = inep;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
}
Composicao.java
package br.com.matricula.modelo;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
@Entity
@SequenceGenerator(name = "composicaoSequence", sequenceName = "composicaoSequence")
public class Composicao implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="composicaoSequence")
@Column(name="id_composicao")
private int id;
private String composicao;
private String serie;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getComposicao() {
return composicao;
}
public void setComposicao(String composicao) {
this.composicao = composicao;
}
public String getSerie() {
return serie;
}
public void setSerie(String serie) {
this.serie = serie;
}
}
Vagas.java
Composicao.Java
package br.com.matricula.modelo;
import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
@Entity
@SequenceGenerator(name = "vagasSequence", sequenceName = "vagasSequence")
public class Vagas implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="vagasSequence")
private long id;
private long vagasTotal;
private String turno;
private long vagasRestantes;
@OneToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
//@JoinTable(joinColumns = @JoinColumn(name = "id_escola"), inverseJoinColumns = @JoinColumn(name = "id_composicao") )
private List<Escola> escola;
@OneToMany(cascade=CascadeType.ALL)
private List<Composicao> composicao;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getVagasTotal() {
return vagasTotal;
}
public void setVagasTotal(long vagasTotal) {
this.vagasTotal = vagasTotal;
}
public String getTurno() {
return turno;
}
public void setTurno(String turno) {
this.turno = turno;
}
public long getVagasRestantes() {
return vagasRestantes;
}
public List<Escola> getEscola() {
return escola;
}
public void setEscola(List<Escola> escola) {
this.escola = escola;
}
public List<Composicao> getComposicao() {
return composicao;
}
public void setComposicao(List<Composicao> composicao) {
this.composicao = composicao;
}
}
Aguardo a ajuda dos senhores!