Estou travado aqui com um problema, preciso fazer uma associação simples, porém não consigo trabalhar com a herança corretamente…
Eu tenho uma Pessoa e um Fornecedor, que possuem n telefones, então tenho uma associação 1-n entre essas classes e uma classe Telefone. Nas classes Pessoa e Fornecedor vou ter uma collection de Telefone, que vai retornar obviamente a lista de telefones destes (dã).
O problema é que quando uso a anotação @OneToMany(mappedBy=“pessoa”) tenho que colocar uma @ManyToOne em Telefone para uma pessoa, o que acaba gerando que eu tenha uma tabela Telefone com uma coluna telefone_pessoa_id. E eu não quero isso, pois ainda posso ter telefone para Cliente, Fornecedor, etc, então minha tabela Telefone vai ter uma coluna para cada uma das outras tabelas que ela se relaciona.
Tentei usar uma Inheritance em Telefone e criar uma classe TelefonePessoa, TelefoneEmpresa, mas aí tinha que em Pessoa criar uma collection do tipo TelefonePessoa, não consegui usar a superclasse. Não deu muito certo e ficou feio do ponto de vista do projeto.
Qual a melhor forma de resolver isso?
Como ficariam as classes anotadas de forma a eu poder utilizar o modelo de dados enviado?
Obrigado! 

