2009-07-31 9 views
15

Avvio di un nuovo progetto Vorrei utilizzare le annotazioni di Hibernate con MySQL invece dei file di configurazione che ho utilizzato fino ad ora. E io non riesco a trovare l'equivalente di:L'equivalente di <generator class = "native"></generator> con annotazioni MySQL e Hibernate3

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

Ho provato ad utilizzare:

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

ma ottenuto:

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

o:

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

Dammi:

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

Qualcuno ha implementato correttamente le annotazioni MySQL e Hibernate3 per la generazione automatica degli ID?

risposta

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

Questo consente a Hibernate di selezionare la strategia appropriata in base al database sottostante.

+1

Per MySQL introduce una tabella di sequenza piuttosto che usare generazione ID nativo. –

-1

Provare a utilizzare @GeneratedValue(strategy=GenerationType.AUTO). Questo dovrebbe usare la funzionalità di autonum MySQL.

Problemi correlati