1. 程式人生 > >總結SSH階段常見的異常系列之二hibernate續

總結SSH階段常見的異常系列之二hibernate續

SSH階段常見的異常系列之二hibernate續

異常十六

異常描述: 屬性入口建立異常:不能定位欄位也不能從name屬性中獲得get方法
錯誤在實體類cn.ticast.domain.LinkMan # lkm_cust_id中
異常資訊: 嚴重: Servlet.service() for servlet [AddLinkManServlet] in context with path [/day01_hibernate] threw exception [Servlet execution threw an exception] with root cause
org.hibernate.property.access.spi.PropertyAccessBuildingException:
Could not locate field nor getter method for property named [cn.ticast.domain.LinkMan#lkm_cust_id]at
異常原因: 在建立主外來鍵關聯id(lkm_cust_id)的時候把該欄位當做普通屬性寫入了LinkMan類中,並在LinkMan.hbm.xml中映射了該欄位,導致後臺程式一直報錯。
解決方案: 在LinkMan類中去除lkm_cust_id這一屬性,並在對映檔案中去除這一列( ),問題可以解決

異常十七

異常描述: 服務異常:不能去建立一個被請求的服務
異常資訊: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:244)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:208)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)

異常原因: 在進行兩張表(customer和linkMan)關聯資料的新增過程中,沒有在主配置檔案(hibernate.cfg.xml)中引入linkMan的xml對映檔案,導致服務不能正常執行
解決方案: 在hibernate主配置檔案中引入兩個實體類的對映檔案,問題可以解決
以下的配置都需要及時配置,如果沒有及時配置就容易出錯

異常十八

異常描述: Hibernate異常:方法DialectResolutionInfo 不能為空,hibernate方言沒有設定
異常資訊: Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect’ not set
異常原因: 沒有載入核心配置檔案
//建立配置例項物件
Configuration config = new Configuration();
//載入src’目錄下的配置檔案
config.configure();
解決方案: 載入配置檔案

異常十九

異常描述: 屬性使用建立異常:不能找到屬性名稱uid
異常資訊: Caused by: org.hibernate.property.access.spi.PropertyAccessBuildingException: Could not locate field nor getter method for property named [cn.itheima.demo1.domain.Demo1#uid]
異常原因: 類名寫錯

解決方案:
改成uid所屬的類名

異常二十

異常描述: Hibernate異常:無法使用jdbc連線
異常資訊: Caused by: org.hibernate.HibernateException: Unable to make JDBC Connection [dbc:mysql:///hibernate_day02]
異常原因: 核心配置檔案jdbc連線寫錯

解決方案: 改成jdbc:mysql

異常二十一

異常描述: 資料異常:不能在Hibernate內部執行更新操作
異常資訊: org.hibernate.exception.DataException: could not execute statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:52) at
…..
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘lkm_phone’ at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2983) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631) at
異常原因: 造成的原因是資料截斷:lkm_phone欄位資料過長。經過仔細檢視,發現在資料庫見表過程中給lkm_phone這個欄位的長度是一個位元組,長度太小,導致資料空間不能儲存
解決方案: 修改資料庫表中該欄位的長度,修改成給定欄位長度20個位元組

異常二十二

異常描述: 型別不匹配異常:為cn.itcast.domain.Customer類提供了一個錯誤的id匹配型別
異常資訊: Servlet.service() for servlet [SaveLinkmanServlet] in context with path [/hibernate_my-crm2] threw exception org.hibernate.
TypeMismatchException: Provided id of the wrong type for class cn.itcast.domain.Customer. Expected: class java.lang.Long, got class java.lang.String at org.hibernate.event.internal.DefaultLoadEventListener.checkIdClass(DefaultLoadEventListener.java:166) at…..
異常原因: 在給customer類設定id欄位時沒有和其他類以及資料庫型別保持一致,應該是給該類有關id型別都是設定為long型別,但是該學員在該類中給其中cust_id設定了String型別,就導致後臺程式一致報錯
解決方案: 重新修改cust_id型別,修改成Long型別,把後臺其餘的java類中和與此id匹配相關的型別 都由string修改成Long型別,問題可以解決

異常二十三

異常描述: 棧記憶體溢位異常:由於使用單元測試,所報的異常無法複製,所有截圖,異常名稱已經寫出。
異常資訊: java.lang.StackOverflowError

異常原因: 是因為在Customer類中,有一個set集合屬性
Private Setset = new HashSet();
在重新toString()方法的時候,也將這個屬性重寫。
而在LinkMan類中,也有一個Customer屬性。Private Customer customer;
在重寫toString()方法時,也將該屬性重寫。在程式呼叫時,hibernate的session物件
Query query = session.createQuery(“from Customer”);
List list = Query.list()
For(Customer customer : list){
System.out.println(customer);
}這樣列印輸出時會迴圈巢狀輸出,列印customer物件的時候,也打印出linkMan的set集合,而在linkman物件中又包括customer物件,所以會一直迴圈列印,所以棧記憶體溢位。
解決方案: 在重寫toString()方法時,碰到這種物件相互巢狀的時候,就不要將這種set集合和物件型別寫在toString()方法中即可。

異常二十四

異常描述: 該異常為類轉換異常:String型別無法轉換成User型別。該異常發生在:TestHbnt類的第61行。
異常資訊: java.lang.ClassCastException: java.lang.String cannot be cast to hibernateLianxi_entity.User
at hibernateLianxi_text.TestHbnt.lianxi6(TestHbnt.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod1.runReflectiveCall(FrameworkMethod.java:50)atorg.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)atorg.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)atorg.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)atorg.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)atorg.junit.runners.ParentRunner3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner1.schedule(ParentRunner.java:71)atorg.junit.runners.ParentRunner

相關推薦

總結SSH階段常見異常系列hibernate

SSH階段常見的異常系列之二hibernate續 異常十六 異常描述: 屬性入口建立異常:不能定位欄位也不能從name屬性中獲得get方法 錯誤在實體類cn.ticast.domain.LinkMan # lkm_cust_id中 異常資訊:

高性能計算系列-常見名詞一

網上 解決 smp 計算方法 計算過程 computing 分解 velocity 可用性 高性能計算中的一些常見名詞: 超級計算機“超級計算”(supercomputing)這名詞第一次出現,是在1929年《紐約世界報》關於IBM為哥倫比亞大學建造大型報表機(tabu

【只怕沒有幾個人能說清楚】系列:Unity中的特殊文件夾

物體 avi ebp time 編輯模式 tro hive 預覽 打包 參考:http://www.manew.com/thread-99292-1-1.html 1. 隱藏文件夾 以.開頭的文件夾會被忽略。在這種文件夾中的資源不會被導入,腳本不會被編譯。也不會出現

Maven常見異常解決《

inf 項目 orb solved update nsf nap ips transfer 下面是一些Maven工程的常見異常: 1.ReasonPhrase: Forbidden: |--- 1.註意用戶的權限以及角色role的設置,通常是沒有權

【Unity Shaders】ShadowGun系列——霧和體積光

依靠 action 圖形學 取值 線性 數學 viewer https 是否 寫在前面體積光,這個名稱是God Rays的中文翻譯,感覺不是非常形象。God Rays事實上是Crepuscular rays在圖形學中的說法,而Crepuscular rays的意思是雲隙光

【iOS與EV3混合機器人編程系列】工欲善其事,必先利其器(準備篇)

style 混合 版權 相同 開發 code 操作系統 圖形 ipa 在上一篇文章中,我們論述了iOS與EV3結合後機器人開發的無限可能。那麽,大家要不要一起來Hacking一把呢?為了能夠完整地完畢我接下來我講的項目。我們須要做下面準備:1、一臺Mac執行MAC OS

C++語言筆記系列十——模版

輸出 類模板 pos 有一個 class 初始 個數 創建對象 example 1.隨意輸入兩個數x和y,輸出最大值max。 int max(int x, int y) {return x>y?x:y;} 2.函數模版 (1)用一種或者多

Python零基礎學習系列--Python介紹及環境搭建

url 軟件包 三方庫 簡單的 lin 文件的 span 高級程序設計 擴展 1-1、Python簡介:  Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。Python由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年

緩存系列:CDN與其他層面緩存

級別 spl pecl apache 分布式緩存 -o 真實ip har 分享 緩存系列之二:CDN與其他層面緩存 一:內容分發網絡(Content Delivery Network),通過將服務內容分發至全網加速節點,利用全球調度系統使用戶能夠就近獲取,有效降低訪問延遲,

數據庫面試系列:視圖

名稱 獨立 建立 數據庫 有用 圖的定義 適合 場景 多個 視圖的定義:視圖是一個或者多個基本表(或者視圖)導出的表。 視圖是一張虛表,視圖的數據並不實際存儲 視圖的優點: 1.視圖可以簡化用戶的操作 2.視圖可以讓用戶從多個角度來看待同一數據 3.視圖提供一定的數據邏輯獨

.Neter玩轉Linux系列:Linux下的文件目錄及文件目錄的權限

pac linux 在那 用戶 目錄結構 重要 bsp 樹狀 hub 一、Linux下的文件目錄 簡介:linux的文件系統是采用級層式的樹狀目錄結構,在此 結構中的最上層是根目錄“/”,然後在此目錄下再創建 其他的目錄。深刻理解linux文件目錄是

Java並發編程系列十八:CompletionService

xtend cts edate strong ext [] com 喚醒 render CompletionService簡介 CompletionService與ExecutorService類似都可以用來執行線程池的任務,ExecutorService繼承了Execut

Web API系列WebApi基礎框架搭建

相關 框架搭建 導入 沒有 pos 創建 div 程序 傻瓜式 本文主要介紹如何搭建一個WebApi的項目.關於如何搭建WebApi的方式一共有兩種: 一、通過vs直接新建一個WebApi的項目,步驟如下: 第一步: 新建一個空的Web應用程序,可以理解為作為WebApi的

CAN總線學習系列——CAN總線與RS485的比較

smb 可靠性 bus targe 接口 blog 情況 並不是 control CAN總線學習系列之二——CAN總線與RS485的比較 上 一節介紹了一下CAN總線的基本知識,那麽有人會問,現在的總線格式很多,CAN相對於其他的總線有什麽特點啊?這個問題

從產品展示頁面談談Hybris系列: DTO, Converter和Populator

ext 存儲 resource tar adl 裏的 resolve 個數 lis 文章作者:張健(Zhang Jonathan) 上一篇文章 從產品展示頁面談談Hybris的特有概念和設計結構 我們講解了Hybris一些特有的概念以及大體架構,並且介紹了Facade層裏是

Https系列:https的SSL證書在服務器端的部署,基於tomcat,spring boot

onf 基於 分享 height 轉化 自簽名 size class ont 一:本文的主要內容介紹 CA證書的下載及相應文件的介紹 CA證書在tomcat的部署 CA證書在spring boot的部署 自簽名證書的部署 二:一些內容的回顧 在Https系列之一中已介

Exchange 2013系列:AD部署

Windows Exchange Microsoft 打開網絡和共享中心,右鍵網卡選擇屬性;選擇IPV4,點擊屬性;輸入IP地址、子網掩碼、網關及DNS,點擊確定;打開服務器管理器,點擊計算機名;點擊更改;輸入計算機名後點擊確定;重啟電腦;重啟完畢後,打開服務器管理器,在管理菜單中選擇添加角色和功

Unity插件系列維碼

rate debug div play 格式轉換 -s 離線 interval private 1.二維碼常見的生成與識別途徑 1.草料二維碼 https://cli.im/text 2.在軟件中實現生成和掃描二維碼 使用zxing實現 zxing是一個用java寫的開源

手把手教你跑Larave框架實戰筆記系列

Laravel PHP框架 系列之一為童鞋們搭好了舞臺,今天正式登臺跑框架了…… 從“路由”開始,玩一把“Hellow world!” Route::get(‘/’, function () { //return view(‘welcome’); return ‘Hellow world!’; });

PowerShell從零開始系列

PowerShell好了,之前我們講過學習PowerShell的必要性,那麽今天開始實際操作下PowerShell。PowerShell預裝在Windows 7以上的系統中,無需額外下載,即可使用你可以在開始菜單中找到 Windows PowerShell或者通過 Win+R 運行 PowerShell以打開