Pessoal
Estou com um problema bobo com hibernate, mas que devido a estar há algum tempo afastado do desenvolvimento, não estou conseguindo solucionar, então queria ver se conseguem me ajudar.
O que acontece é o seguinte:
Tenho uma classe Contato:
@Entity
@SequenceGenerator(name = "CONTATO_SEQ", sequenceName = "contato_seq")
public class Contato {
@Id
@GeneratedValue(strategy=GenerationType.AUTO,generator="CONTATO_SEQ")
private Long id;
@Column(nullable=false)
private String nome;
@Column(length=1000)
private String obs;
@OneToMany(cascade={CascadeType.ALL})
@OrderBy("descricao")
private List<Telefone> telefones;
//gets and sets
}
e uma classe Telefone:
@Entity
@SequenceGenerator(name = "TELEFONE_SEQ", sequenceName = "telefone_seq")
public class Telefone {
@Id
@GeneratedValue(strategy=GenerationType.AUTO,generator="TELEFONE_SEQ")
private Long id;
@Column(nullable=false)
private String descricao;
@Column(nullable=false)
private String telefone;
@ManyToOne
private Contato contato;
//gets and sets
}
O que eu esperava era que no banco de dados o hibernate criasse uma tabela contatos e uma tabela telefones, e na tabela telefones tivesse um campo contato_id. Isso acontece, mas ele cria mais uma tabela, chamada contato_telefone, que te o id de ambos. Essa tabela seria totalmente desnecessária, certo? tem como evitar a criação dela? Ou estou errando algo no mapeamento?
Obrigado a todos que puderem ajudar.