JAVA - Problemas lógicos com herança

Seguinte,

Tenho uma SuperClasse chamada Base, com seus atributos, por exemplo:

@Inheritance(strategy = InheritanceType.JOINED)   
public class Base implements Serializable {

    private static final long serialVersionUID = 1L;
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private Integer excluido;
    private String descricao;       
    private String metodo;
    private Integer tempo;
}

e duas SubClasses:

@Entity
@PrimaryKeyJoinColumn(name="idBase")
public class Base1 extends Base implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
 
    private Date data;

}



@Entity
@PrimaryKeyJoinColumn(name="idBase")
public class Base2 extends Base implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
     private String link;
}

O mapeamento esta ok, criou tudo no banco de dados.

Agora estou diante da seguinte situação, preciso criar uma Base, mas ainda não sei se ela é do tipo Base1 ou do tipo Base2, tava pensando em disponibilizar para o usuário, a possibilidade dele escolher se quer criar Baser1 / Base2, mas para referenciar isso em minha página ou dialog, que fiquei perdido.

Se Tenho em meu Bean:

private Base base;
private Base1 base1;
private Base2 base2;

E como eu chamaria na minha página?
Se quero colocar a descricao, posso por #{meuBean.base.descricao}, assim como #{meuBean.base1.descricao} e #{meuBean.base2.descricao} que obviamente vai funcionar, mas se eu precisar colocar os atributos específicos da subclasse, eu teria que chamar ou base1 ou base2 certo? e ai, teria que replicar tudo na minha página e ter 2 códigos específicos caso seja Base1 ou base2 ?

exemplo:

#{meuBean.base1.descricao} rendered caso o usuário tenha selecionado o tipo Base1
#{meuBean.base1.data} rendered caso o usuário tenha selecionado o tipo Base1 e

#{meuBean.base2.descricao} rendered caso o usuário tenha selecionado o tipo Base2 e
#{meuBean.base2.link} rendered caso o usuário tenha selecionado o tipo Base2

Como podem ver estou meio perdido… to achando muita burrice repetir todo o código para cada situação.

Ademais, eu poderia deixar todos os atributos de base e só os especificos em base1 e/ou base2, mas dai na hora que fosse pro meu Bean /Controller, eu teria que fazer:

base1.setDescricao (base.getDescricao())
base1.setExcluido.....