Duas sequences mapeadas na mesma classe!

E aí, galerinha do GUJ!
Tudo bem com vocês?

Alguém sabe se é possível eu fazer o mapeamento de duas sequences diferentes na mesma classe?
Algo parecido com:

[code]@SequenceGenerator(name=“TABELA_SEQ_ID”,sequenceName=“SEQ_ID”)
@SequenceGenerator(name=“TABELA_SEQ_CODIGO”,sequenceName=“SEQ_CODIGO”)
public class Classe {

@GeneratedValue(generate = GeneratorType.SEQUENCE, generator="SEQ_ID")
private Long ID;
@GeneratedValue(generate = GeneratorType.SEQUENCE, generator="SEQ_CODIGO")
private Long codigo;

}[/code]

Valeu, gente,
fiquem com Deus! :smiley:

Só não entendi porque você precisa de duas sequences, você precisa de dois campos com o mesmo conteúdo?

Eu preciso de duas sequences justamente porque os campos possuirão valores diferentes em determinado momento. Por isso, a necessidade de duas sequences. É possível fazer o que eu quero?

Abraços,
fique com Deus! :smiley:

Mas se você criar as sequences, vai ficar a cargo do banco incrementá-las, o que vai fazer com que sempre fiquem iguais.
A não ser que você altere na mão (o que já não faz sentido ter a sequence) ou configure no banco para que a sequences iniciem com valores diferentes.

De qualquer forma, nunca precisei fazer isso e nem conheço quem já tenha feito :smiley: , mas acredito que seja possível.

Você já tentou subir com essa configuração, deu algum erro?

[quote=Joaozava]Mas se você criar as sequences, vai ficar a cargo do banco incrementá-las, o que vai fazer com que sempre fiquem iguais.
A não ser que você altere na mão (o que já não faz sentido ter a sequence) ou configure no banco para que a sequences iniciem com valores diferentes.

De qualquer forma, nunca precisei fazer isso e nem conheço quem já tenha feito :smiley: , mas acredito que seja possível.

Você já tentou subir com essa configuração, deu algum erro?[/quote]
Ele simplesmente não aceita. O compilador “reclama” que já existe um SequenceGenerator nessa classe! ;s
Estranho, né? haha

Essas sequences são utilizadas em outras entidades? Qual a finalidade real de se manter duas sequences nesse caso?

É, talvez uma sequence só resolva meu problema. Não há mesmo a necessidade de utilizar duas sequences.
E para atribuir uma mesma sequence para dois atributos distintos?

É, talvez uma sequence só resolva meu problema. Não há mesmo a necessidade de utilizar duas sequences.
E para atribuir uma mesma sequence para dois atributos distintos?[/quote]

Ok, agora vem mais uma pergunta: Porque é necessário manter dois atributos com o mesmo valor dentro da sua entidade?

É, talvez uma sequence só resolva meu problema. Não há mesmo a necessidade de utilizar duas sequences.
E para atribuir uma mesma sequence para dois atributos distintos?[/quote]

Ok, agora vem mais uma pergunta: Porque é necessário manter dois atributos com o mesmo valor dentro da sua entidade?[/quote]
Eu não quero que o meu identificador da tabela seja exibido. Portanto, escolhi colocar uma outra coluna, chamada código, para que possua o mesmo valor e seja exibido para o usuário.

Nicolas,

Entendi a regra. Agora, conceituamente você percebe que fazendo dessa forma estará mantendo duas colunas iguais que farão o papel de Chave Primária na sua entidade? Afinal, se você manter o mesmo valor nas duas colunas pode-se partir do princípio que ambas as colunas terão valores únicos e que não podem ter duas tuplas com o mesmo valor nessas colunas, certo? Você teria que manter valores redundantes para essa Entidade.

Caso ainda assim haja necessidade de se manter essas duas colunas, eu faria com que o setter de um atributo já escreva o valor em outro atributo e vice-versa.

É, talvez uma sequence só resolva meu problema. Não há mesmo a necessidade de utilizar duas sequences.
E para atribuir uma mesma sequence para dois atributos distintos?[/quote]

Ok, agora vem mais uma pergunta: Porque é necessário manter dois atributos com o mesmo valor dentro da sua entidade?[/quote]
Eu não quero que o meu identificador da tabela seja exibido. Portanto, escolhi colocar uma outra coluna, chamada código, para que possua o mesmo valor e seja exibido para o usuário.[/quote]

Mas dessa forma você vai exibir seu identificador do mesmo jeito, mesmo valor em outra coluna… faria alguma diferença?