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: 2

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 759

Trending Articles


“Mali man na ikaw ay ibigin ko, akoy iibig padin sayo”


UPDATE SC IDOL: TWO BECOME ONE


Pokemon para colorear


Sapos para colorear


Love Quotes Tagalog


Long Distance Relationship Tagalog Love Quotes


Top 10 Best “Single” Tagalog Love Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


EASY COME, EASY GO


FORECLOSURE OF REAL ESTATE MORTGAGE


HOY PANGIT, MAGBAYAD KA!


Girasoles para colorear


Presence Quotes – Positive Quotes


The business quotes | Inspirational and Motivational Quotes for you


Two timer Sad tagalog Love quotes


“BAHAY KUBO HUGOT”


RE: Mutton Pies (frankie241)


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.



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