1. 程式人生 > >無法轉換為內部表示解決辦法

無法轉換為內部表示解決辦法

1.報錯:

SQL Error: 17059, SQLState: null

[gamebang] ERROR [resin-tcp-connection-*:8080-2] JDBCExceptionReporter.logExceptions(72) | 無法轉換為內部表示

上網查詢結果: 這個錯誤原因是:資料庫裡的欄位型別與Java裡對映該欄位屬性的型別不能對應轉換,例如資料庫裡欄位型別為Varchar2,而Java定義的型別為Long;或者資料庫裡為Number,而Java定義的對應屬性型別為String。

根據提示檢查了一遍那個類檔案,沒發現問題,最後查明是引用的一個外來鍵型別不一致,引用位置型別定義為

String,但是原位置卻是Integer,所以報錯。例如:

Class A{

String id;

String bId;//外來鍵,關聯到B的主鍵,此處型別不一致,導致錯誤

}

Class B{

Integer id;

}

2.spring+hibernate怎麼顯示編譯完的hql語句:

在applicationContext-hibernate.xml裡配

<property name="hibernateProperties">
            <props>
                <prop key="hibernate.show_sql">true</prop>

            </props>

</property>