quarta-feira, 2 de setembro de 2009

JPA e "last_insert_id"

Você já passou pelo problema de inserir um registro em uma tabela e logo a seguir precisar desse código pra relacionar com outra tabela (por exemplo....) e o seu objeto de persistência não retornar esse código?

Então seus problemas acabaram.... na classe da sua entidade, mais precisamente no campo que identifica a chave primária (autoincrement) da tabela, basta você inserir:

@GeneratedValue(strategy=GenerationType.IDENTITY)

Por exemplo:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "codigo", nullable = false)
private Integer codigo;

Depois disso, após a chamada do commit você poderá chamar o método que retorna o código criado para o objeto, essa dica por retirada do endereço:

http://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Identity_sequencing


T+

Nenhum comentário: