Utilizando o Oracle ou o PostigreSQL eu costumo criar sequences e mandar o hibernate executar as sequences e atribuir o valor ao campo @Id, desta forma:
@Id
@SequenceGenerator(name = "SEQEDCALECALECODIGO", sequenceName = "SEQ_EDCALE_CALECODIGO", allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQEDCALECALECODIGO")
@Basic(optional = false)
@Column(name = "CALECODIGO")
private Integer calecodigo;
A sequence
SEQ_EDCALE_CALECODIGO deve existir no banco.
Para o caso do Mysql ou outros bancos que não possuam o recurso de sequences, deve fazer assim (nunca precisei utilizar, uso apenas o Oracle):
@Id
@Basic(optional = false)
@Column(name = "CALECODIGO")
@GenerateValue private Integer calecodigo;
Para utilizar a geração de id que sirva tanto para o Oracle quanto para o Mysql voce pode utilizar a estrategia de geração de id automatica, assim:
@SequenceGenerator(name = "SEQEDCALECALECODIGO", sequenceName =
"SEQ_EDCALE_CALECODIGO", allocationSize=1)
@GeneratedValue(
strategy = GenerationType.AUTO, generator =
"SEQEDCALECALECODIGO")
Com o Mysql conheço a teoria, mas no Oracle é assim mesmo que utilizo.
Qualquer duvida estou a disposição.
--
Atenciosamente,
Bruno Missi Xavier
Consultor Interno de
Gestão
Tel/cel: (28) 3521-2001 / (28) 9966-7613
www.dataci.es.gov.bremail:
dataci...@cachoeiro.es.gov.brskype: bruno.missi.xavier