[RESOLVIDO]Ajuda Hibernate

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!

qual banco você está usando?

se for postgres (ele aceita você usar SEQUENCE) se for mysql vc não precisa disso

[code]Troque isso
@SequenceGenerator(name = “vagasSequence”, sequenceName = “vagasSequence”)

Por isso (Mais legivel)
@SequenceGenerator(name = “SEQ_VAGAS”, sequenceName = “sequence_vagas_id”, allocationSize=1)
[/code]

Apenas para postgres, mysql não aceita isso @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_VAGAS")

Para mysql @GeneratedValue(strategy=GenerationType.AUTO) (ou IDENTITY)

seu relacionamento está faltando algumas coisas
de uma procurada no google

sobre relacionamento @OneToMany(unidirecional e bidirecional)

Att

Obrigado!

Desculpe pela demora ao agradecer!