無法轉換為內部表示解決辦法
阿新 • • 發佈:2019-01-07
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>