Quantcast
Channel: GUJ - Tópicos com a tag hibernate
Viewing all articles
Browse latest Browse all 759

JAVA - Problemas lógicos com herança

$
0
0

@rmaragno escreveu:

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.....

Mensagens: 1

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 759

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


tagalog love Quotes – Tiwala Quotes


Long Distance Relationship Tagalog Love Quotes


EASY COME, EASY GO


5 Tagalog Relationship Rules


5 Uri ng Pambobola


Best Love Life Quotes Collection


Vimeo 10.7.0 by Vimeo.com, Inc.


Pokemon para colorear


Girasoles para colorear


Gwapo Quotes : Babaero Quotes


Love Quotes Tagalog


Two timer Sad tagalog Love quotes


Inggit Quotes and Kabit Quotes – Tagalog Patama Quotes


INUMAN QUOTES


Hugot Lines 2020 Patama : ML Edition


Re:Mutton Pies (lleechef)


Ligaw Quotes – Courting Quotes – Sweet Tagalog Quotes


Sapos para colorear



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>