Preciso fazer com que um campo seja gerado automaticamente quando salvo meu objeto. Queria fazer a mesma coisa q o Id faz só que o campo precisa zerar quando mudamos de ano.
Pode usar @GeneratedValue(strategy=GenerationType.SEQUENCE, generator=“etiquetaSeq”) na propriedade ou existe ou maneira de fazer? Se pode, como zerar o valor a cada ano…
Bom, tô aprendendo ainda… mais qualquer dica vale.
Eu vi essa resposta no javafree.org… e fiz esse código que funcionou. Só que eu queria que tivesse um campo Id e outro Numero… Será que vou ter de criar uma trigger para fazer isso :?:
publicclassIdEtiquetaGeneratorimplementsIdentifierGenerator{publicIdEtiquetaGenerator(){}publicSerializablegenerate(SessionImplementorsession,Objectobject)throwsHibernateException{Sessionsess=session.getFactory().openSession();Stringkey=null;synchronized(this){Stringexercicio=newSimpleDateFormat("yy").format(newDate());Iteratorresults=sess.createQuery("SELECT MAX(E.numero) FROM Etiqueta E "+"WHERE SUBSTR(DATEPART('YEAR',E.dataEmissao),3,2) = SUBSTR(DATEPART('YEAR',CURRENT_DATE),3,2)").list().iterator();Stringnumero="0";if(results.hasNext()){numero=(String)results.next();if(numero==null)numero="0";}if(numero.length()>1)numero=numero.substring(2,numero.length());Integeri=Integer.parseInt(numero);i++;NumberFormatnf=NumberFormat.getInstance();nf.setMinimumIntegerDigits(7);nf.setGroupingUsed(false);key=exercicio+nf.format(i);}System.out.println("####### O id gerado é: "+key);returnkey;}}
Fica ai a resposta do outro Fórum para alguém que queira fazer dessa forma…