Dois @OneToOne como escolher

Pessoal olá,

eu tenho uma entidade q tem dois relacionamentos @OneToOne pessoaFisica e PessoaJuridica

@OneToOne(fetch = FetchType.EAGER, mappedBy = "people", cascade = CascadeType.ALL) 
private PhysicalPerson physicalPerson; 
 
@OneToOne(fetch = FetchType.EAGER, mappedBy = "people", cascade = CascadeType.ALL) 
private LegalPerson legalPerson;

la no controller eu estou fazendo isso aqui:

    if(people.getPhysicalPerson().getFiscalPersonId() != null) { 
        System.out.println("SALVANDO PESSOA FISICA"); 
        people.getPhysicalPerson().setPeople(people); 
        peopleDAO.save(people); 
    } else if (people.getLegalPerson().getFiscalIdentification() != null) { 
        System.out.println("SALVANDO PESSOA JURIDICA"); 
        people.getLegalPerson().setPeople(people); 
        peopleDAO.save(people); 
    }

o meu problema é q eu quero salvar ou uma pessoa fisica ou pessoa juridica, mas mesmo com o if ele acaba salvando tanto a pessoa fisica como a pessoa juridica relacionando a pessoa. como eu faço para salvar ou a pessoaFisica ou a pessoaJuridica ?

E ai?

De uma olhada nesse topico aqui do guj

1 curtida