Hibernate está criando uma tabela intermediária para um relacionamento ManyToOne. Porque isso acontece? Não deveria ser apenas para ManyToMany?
EXPLICANDO:
No meu sistema Clientes podem ter mais de um Endereço. Mas a entidade Endereço é independente, até porque é acessada por várias outras entidades (não possuindo chave-estrangeira para todas estas).
CÓDIGO:
Cliente
@Entity(name = "cliente")
final public class Cliente {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@OneToOne
private Usuario usuario;
@OneToMany
private List<Endereco> endereco = new ArrayList<>();
@OneToMany(mappedBy = "cliente", cascade = CascadeType.ALL)
private List<Cartao> cartao = new ArrayList<>();
private String nome;
private String sobrenome;
private String cpf;
private String phone;
private Timestamp data_nascimento;
private short idade;
private char sexo;
private short votos;
}
Endereco
@Entity(name = "endereco")
final public class Endereco {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne
private Cidade cidade;
private String cep;
private String rua;
private short numero;
private String complemento;
private String bairro;
}