@Table c/ valor dinâmico

3 respostas
stairway

Boa tarde pessoal,

alguém sabe se existe a possibilidade de fazer com que o valor da tag “name” passado na annotation @Table sejá dinâmico?

Em algumas situaçoes minha Entidade seria anotada da seguinte forma:

@Entity
@Table(name="produtosMatriz")
public class Produtos implements Serializable {
...

e em outras situações deveria ser anotada da seguinte forma:

@Entity
@Table(name="produtosFilial")
public class Produtos implements Serializable {
...

os valores “produtosMatriz” e “produtosFilial” seriam retornados de uma session, ou algo do tipo, a qual seria criada no ato do login do usuário na aplicação.

estou tentando fazer aqui, mas não consegui enxergar uma maneira. Se alguem tiver alguma dica que possa me levar a solução do problema, fico feliz!

obrigado!

3 Respostas

fiaux

Não sei se isso seria possível, acho que não. O que você precisa fazer que o levou a pensar nisso?

A

Os atributos das anotações precisam ser constantes. Vc não pode chamar um método em um atributo de uma anotação. O que vc pode fazer é criar uma aplicação independente, responsável por gerar o código fonte (.java) na primeira vez que o usuário fizer o login, compilar e fazer o deployment. O FreeMaker é uma boa ferramenta para geração de código… http://freemarker.org/

Renato_K_Araujo

Nesse caso acho que vc teria que ter duas classes para mapear cada uma pra uma tabela. Uma classe ProdutosMatriz e uma classe ProdutosFilial. Elas poderiam ter uma superclasse comum Produtos mapeada com @MappedSuperClass.

Criado 8 de setembro de 2008
Ultima resposta 9 de set. de 2008
Respostas 3
Participantes 4