Como pegar o valor do discriminator?

1 resposta
ricardospinoza

Boa tarde,

Possuo um class que faz o mapeamento JPA

@Entity
@Table(name = "g_documento_aposentadoria")
@DiscriminatorValue("DOCUMENTO_APOSENTADORIA")
public class DocumentoAposentadoria extends Documento implements Serializable {...

preciso pegar o valor o @DiscriminatorValue dinamicamente, é possível?

Pra contornar a situação criei membros desta classe com os valores, mas evitaria erros se tivesse como pegar automaticamente pelo JPA

1 Resposta

visola

No JPA 1.0 não, com certeza. No 2.0 não sei, talvez. Ele tem um esquema de MetaModel que talvez possibilite isso que você quer.

Mas em último caso, se isso é muito importante para você, pode usar Reflection. O método getAnnotations() de Class permite que você pegue todas as anotações relacionadas com a classe. Poderia checar se a annotation é do tipo DiscriminatorValue e pegar o valor do campo value. Este artigo mostra um exemplo de código do que você precisa.

Criado 10 de fevereiro de 2011
Ultima resposta 11 de fev. de 2011
Respostas 1
Participantes 2