Boa tarde a todos. Preciso gerar um Id numa tabela Mysql usando Hibernate, mas esse Id deve ter 13 dígitos e ser sequencial.
Por exemplo: o primeiro item deve ser 0000000000001, o segundo 0000000000002, etc…
Lembrando que normalmente o Hibernate gera o Id assim:
Item 1 = Id 1 (Mas preciso Item 1 = Id 0000000000001)
Item 2 = Id 2 (Mas preciso Item 2 = Id 0000000000002)
No MySql, pra gerar essa tabela com esse Id, deve-se usar a seguinte sintaxe: int(13) ZEROFILL.
Há alguma maneira de eu fazer isso no Hibernate Annotations? O que eu devo fazer, devo sobrescrever alguma configuração
da geração de Id? Se sim, qual configuração? Desde já agradeço.
Não basta implementar na camada view um render que preencha com zero?
Até pq se o ID for definido como long no hibernate… ai não dá… só se for string mesmo
sempre que quiser exibir o id com zero antes vc usar o getIdZeroFill() (ou da um nome mais bonito pra ele)
Ps.: não lembro bem se o formato da string ta 100%, mas acho que é assim mesmo “%013d”, se não der certo avisa…
Ps2.: o @Transient é pra avisar ao hibernate que isso não se trata de um campo persistente que é apenas uma propriedade a mais da classe
O problema nem era pegar Int ou Long com zero a esquerda, já imaginava isso. O negócio era o Hibernate Mesmo. Mas vcs jah me deram solução pra pegar o ID tbm. Vlw!!!
ColumnDefinition é uma propriedade que só é usada pra Eng. Reversa, ou seja… ela é usada quando o hibernate precisar realizar um CREATE TABLE ou ALTER TABLE, serve apenas pra construir as tabelas no banco, não muda nada quando a manipulação dos dados.
o que vc precisa fazer é converter para string, e usar formatado