2009-07-31 10 views
15

Comenzando un nuevo proyecto Me gustaría utilizar las anotaciones de Hibernate con MySQL en lugar de los archivos de configuración que he utilizado hasta ahora. Y me parece que no puede encontrar el equivalente de:Equivalente a <generator class = "native"></generator> utilizando las anotaciones de MySQL e Hibernate3

<id name="id" type="long" > 
     <generator class="native"></generator> 
    </id> 

Intenté usar:

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "native") 
private long id; 

pero obtuvo:

org.hibernate.AnnotationException: Unknown Id.generator: native 

o:

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private long id; 

Dame:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: PROCEDURE projectName.identity does not exist 

¿Alguien ha implementado con éxito las anotaciones de MySQL e Hibernate3 para generar identificadores automáticamente?

Respuesta

11
@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
public Long getId() { 
    return id; 
} 

Esto permite a Hibernate elegir la estrategia adecuada en función de la base de datos subyacente.

+1

Para MySQL introduce una tabla de secuencias en lugar de utilizar la generación de ID nativa. –

-1

Intente utilizar @GeneratedValue(strategy=GenerationType.AUTO). Eso debería usar la funcionalidad de MySQL autonum.

Cuestiones relacionadas