2010-07-23 63 views
8

我有在MySQL休眠地圖的Java長到MySQL BIGINT錯誤

在Hibernate對象ID字段類型BIGINT的表,我使用的Java long類型此字段

但運行程序時,它拋出異常: Expected: class java.lang.Long, got class java.lang.Integer

如何在Hibernate中映射MySQL BINGINT數據類型?

+1

對BIGINT使用Long是正確的。請顯示您的映射,您正在運行的代碼和完整的堆棧跟蹤。 – 2010-07-23 07:39:48

+0

好吧,我defi錯誤的參數爲我的方法cellDao.get(Integer id)。 我修復它,現在它運行良好。謝謝 – QuanNH 2010-07-23 07:55:55

回答

11

但運行程序時,它拋出異常:預期:類java.lang.Long中,得到了類java.lang.Integer

使用Long爲BIGINT是正確的,上面的錯誤提示你在某種程度上通過了一個Integer,其中Long預計在你的代碼中。仔細檢查你的代碼。

4

請問如果添加columnDefinitioncolumnDefinition =「BIGINT(20)「你映射參數幫助?

+0

我使用hibernate xml配置文件,&不知道如何配置columnDefinition param:| – QuanNH 2010-07-23 07:45:46

+0

我很抱歉,這怎麼可能有幫助? – 2010-07-23 08:08:35

+0

有時侯hibernate無法弄清楚如何正確映射sql-type,但你是對的,在這種情況下,錯誤信息看起來有些不同。 \t \t 引起:org.hibernate.HibernateException:FOO列的TEST.EXAMPLE中的列類型錯誤。發現:長,預期:整數 – mosterme 2010-07-23 08:41:30