2011-03-10 28 views
7

¿Qué puedo hacer para que JPA (yo uso Hibernate) cree Columnas con tipos sin firmar? Actualmente, todas mis columnas de ID están firmadas.Unsigned Int en JPA e Hibernate

+3

Tipos de SQL sin firmar o tipos de Java? Java no tiene tipos de números nativos sin firmar. Si desea utilizar un tipo de SQL sin firmar, debe asignarlo a un tipo de Java lo suficientemente grande (firmado). Por ejemplo, un tipo entero sin signo de 32 bits tendría que almacenarse en un Java 'largo 'firmado. –

+0

Quiero utilizar tipos de SQL sin firmar. – Laures

+1

Entonces la respuesta es mapear esos campos Java 'long'. –

Respuesta

13

Usando el columnDefinition property on the @Column annotation debería hacerlo. Tomar un total de pista sobre el tipo SQL que vamos a dar:

private long foo; 

@Column(columnDefinition = "UNSIGNED INT(11)") 
public long getFoo() 
{ 
    return foo; 
} 

N. B. No todas las bases de datos (como SQL Server, creo) admiten tipos de int sin firmar.

+0

En MySQL, la palabra "UNSIGNED" debe aparecer ** después de ** "INT (11)". – naXa