Caros, estou com uma dúvida.
Tenho uma tabela legada chamada Pagamento. Nela existe um campo Codigo e um campo IsEmpresa. O campo Codigo contém uma String que pode ser mapeada para duas entidades diferentes: Empresa e Escritorio. Tudo depende apenas do campo IsEmpresa. Se o IsEmpresa for TRUE, a minha entidade a ser mapeada é a Empresa. Se o campo for FALSE, a entidade a ser mapeada é a Escritorio.
Como faço essa definição?
tentei criar uma classe para a chave composta:
@Embeddable
public class PagamentoPK implements Serializable {
@JoinColumn(name="Codigo")
private Empresa oEmpresaCobrada;
@Column(name="IsEmpresa", nullable=true)
private int isEmpresa; //nesse caso o campo boolean está mapeado para um int...
Mas, como mapearia a minha Pagamento?
@Entity
@Table ( name = "Pagamento" )
public class Pagamento implements Serializable {
@EmbeddedId
private PagamentoPK pagamentoPK;
Como ficariam as definições de propriedades, para minha classe PK?
Eu poderia criar duas classes distintas, uma que mapeasse sempre o campo IsEmpresa como TRUE - sempre usando uma entidade Empresa, e outra que mapeasse IsEmpresa como FALSE, usando uma entidade Escritorio? Nesse caso, como criar duas classes distintas definindo esse parâmetro para o meu mapeamento?