2010-07-23 9 views
8

Ho una tabella con il tipo di campo id BIGINT in MySQLhibernate mappa java lungo per errore MySQL BIGINT

in oggetto Hibernate, io uso java tipo lungo per la casella

ma quando viene eseguito il programma, è buttare eccezione : Expected: class java.lang.Long, got class java.lang.Integer

come mappare il tipo di dati MySQL BINGINT in modalità ibernazione?

+1

L'utilizzo di Long per un BIGINT è corretto. Si prega di mostrare la mappatura, il codice che si sta eseguendo e lo stacktrace completo. –

+0

ok, ho defi sbagliato param per il mio metodo cellDao.get (Integer id). lo aggiusto e ora funziona bene. grazie – QuanNH

risposta

11

ma quando viene eseguito il programma, esso getta eccezione: Previsto: classe java.lang.Long, ottenuto classe java.lang.Integer

Utilizzando un Long per un BIGINT è corretto e l'errore precedente suggerisce che in qualche modo stai passando un Integer dove un prefisso Long è atteso da qualche parte nel tuo codice. Controlla il tuo codice.

4

Aiuta se si aggiunge una ColumnDefinition come ColumnDefinition = “bigint (20)" ai tuoi parametri di mappatura?

+0

uso il file di configurazione hibernate xml e non so come configurare columnDefinition param: | – QuanNH

+0

Mi dispiace ma come potrebbe essere utile? –

+0

A volte l'ibernazione non riesce a capire come mappare correttamente il tipo sql, ma hai ragione, in quel caso il messaggio di errore sembra leggermente diverso. \t \t Causato da: org.hibernate.HibernateException: tipo di colonna errato in TEST.EXAMPLE per colonna FOO. Trovato: lungo, atteso: numero intero – mosterme