Dúvida: Mapeamento de campo como chave-primária

4 respostas
Marcio_Nogueira

Olá, minha dúvida é como mapear um campo como sendo chave-primária em uma tabela, e quais as consequêmcias de utilizar updatable = false, insertable=false na anotação @Colum? :wink:

4 Respostas

Marcio_Nogueira

O SQL Server suporta apenas @GeneratedValue(strategy=GenerationType.IDENTITY) ou suporta outros tipos? :?:

paulo1911

Olá Marcio,

Na verdade as anottations servem apenas para você padronizar a forma de mapeamento da sua entidade com o banco de dados.
Se vc estiver usando o Hibernate com a anotação JPA (Java Persistence API, pacote javax.persistence), para você deterinar um atributo como chave primária vocÊ vai usar a anotação @Id, juntamente com o a anotação @GeneratedValue(strategy=GenerationType.IDENTITY) para determinar a forma de incremento do campo de chave primária. O identity é quando vc define usar o auto incremento da propria tabela, ou seja o banco de dados se encarrega de incrementar os registros.

No SQL Server o auto incremento é identity mesmo. tanto na annotation quanto na SQL pura.

Obs.: Prefira sempre usar as anottations do JPA. Pesquise mais sobre isso e você verá as vantagens.

Fallow

Marcio_Nogueira

Oi Paulo, obrigado pela ajuda.
Deixa eu ver se entendi bem:
strategy=GenerationType.IDENTITY é utilizado quando se quer trabalhar com campos definidos como auto numeração sob controle(gerenciamento) do sql server?

paulo1911

Isso mesmo, até mesmo pq se você inserir a propriedade hbmddl-auto no Hibernate-config ou no persistense.xml do jpa quando o banco for criado pelo hibernate na sql de criação ele ja inckui pra vc como “create table teste id integer not null identity”…, etc…

OK!

Fallow

Criado 13 de dezembro de 2010
Ultima resposta 13 de dez. de 2010
Respostas 4
Participantes 2