segunda-feira, 15 de dezembro de 2008

GeneratedValue com Hibernate no Firebird

Estou desenvolvendo um novo sistema em java e estou utilizando o Hibernate annotations, tive muitas dificuldades para aprender a utilizar as funcionalidades disponibilizadas pelo Hibernate, uma delas foi a utilização de autoincremento (Generators) do Firebird. Por isso estou postando aqui um exemplo.

Digamos que você queira criar uma tabela que ira salvar dados de uma conexão.

DDL do ibExpert:

CREATE TABLE TCPIP (

CODTCPIP INTEGER NOT NULL,

IP VARCHAR(100),

PORTA INTEGER,

GATEWAY VARCHAR(23),

MASCARA VARCHAR(30),

EQUIPSERIAL INTEGER,

MAC VARCHAR(30)

);

ALTER TABLE TCPIP ADD CONSTRAINT PK_TCPIP PRIMARY KEY (CODTCPIP);

Lembre de gerar o Generator para o CODTCPIP. O nome padrão gerado pelo ibExpert seria “GEN_TCPIP_ID”

A sua classe modelo devera ficar parecida com a seguinte:

@Entity

@Table(name = "TCPIP", catalog = "", schema = "")

@SequenceGenerator(name = "INC_TCPIP", sequenceName = "GEN_TCPIP_ID")

public class Tcpip implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy = GenerationType.AUTO, generator = "INC_TCPIP")

@Column(name = "CODTCPIP")

private Integer codtcpip;


Dois detalhes importantes das anotações feitas são @SequenceGenerator e @GeneratedValue, lembrando que o type do generator deve ser AUTO, pra utilizar o generator criado no Firebird.

Nenhum comentário: