hibernate 特殊情況下 屬性找不到get方法的解決方案
Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for pOrgID in class com.oarage.basedata.commons.entity.UnloadOil
我說的情況是屬性名稱第一個字母小寫,第二個字母大寫,例如:eTypeName,則按照javabean specification規定的getter方法為getETypeName,則會出現找不到getter方法的錯誤。
今天看了一下javabean specification,規定了一般的屬性名稱首字母小寫,如果遇到前兩個字母大寫的屬性,則getter方法保持屬性名稱不變,例如URL屬性的getter方法為getterURL,但是並沒有規定類似eTypeName這樣的屬性的getter方法寫成geteTypeName的形式。
如果Hibernate實體屬性名稱 第2個字母是大寫 或者 出現兩個字母大寫:
hibernate 3.2.5.ga中會出現錯誤:Could not find a getter for “fieldName”
hibernate3.2.7中會出現錯誤: Unable to instantiate default tuplizer
Hibernate用的方法是 :BasicPropertyAccessor.java
String methodName = methods[i].getName();
if( methodName.startsWith("get") ) {
String testStdMethod = Introspector.decapitalize(methodName.substring(3) );
String testOldMethod = methodName.substring(3);
if( testStdMethod.equals(propertyName) || testOldMethod.equals(propertyName) ) return methods[i];
}
呼叫的是 :Introspector.decapitalize(String name);
Sun的註釋說明
but in the (unusual) special case when there is more than one character and both the first and second characters are upper case, we leave it alone.
他得到getXSize這個方法名,substring[3]為XSize然後decapitalize之後不修改首位字元,就Could not find a getter for xSize了
這個是Java Bean的Spec裡面規定的。方法有多種,你可以寫成xsize這種全部小寫,或者加"_"字元,如果你首位大寫不在第二位就沒問題了。
另外出現Unable to instantiate default tuplizer錯誤可能的原因:
是某個實體類中外加了某些getXX(),而不存在XX屬性,這時要在get上加@Transient,不持久 化它就行了
相關推薦
hibernate 特殊情況下 屬性找不到get方法的解決方案
Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for pOrgID in class com.oarage.basedata.commons.entity.Unloa
Linux下編譯驅動程式碼時smp_lock.h檔案找不到的解決方案
專案中有個驅動程式碼之前在老版本linux系統中編寫的 在移植到linux核心3.2.0後,編譯時出現一處錯誤“fatal error: linux/smp_lock.h: No such file or directory” 解決辦法是將 #include <linux/smp_lock.h&g
Android studio 真機調試時生成的文件找不到的解決方案
android 文件權限 真機調試 在用Android studio 開發時,用真實手機做測試,發現生成的文件會找不到。下面是我第一次碰到這個問題時,縮寫的代碼。public class MainActivity extends AppCompatActivity { @Override
uploadify在火狐下上傳不了的解決方案,java版(Spring+SpringMVC+MyBatis)詳細解決方案
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
/usr/bin/ld: 找不到 -lmsc----解決方案
系統的預設搜尋依賴庫路徑為,/usr/local/lib 在camkelists.txt檔案中對可執行檔案連結libmsc.so add_executable(iat_publish src/iat_publish.cpp src/speech_recognizer.c src/l
org.apache.http不存在或找不到,解決方案
Android 6.0不再支援 Apache HTTP client。 請使用 HttpURLConnection 代替。如果遇到之前老程式碼執行不起來或者報錯怎麼辦呢,又不想寫新的程式碼。 Error:(19, 23) 錯誤: 程式包org.apache.htt
word中MathPage.wll或MathType.dll檔案找不到的解決方案(親測有效!)
在安裝了正版的mathtype 6.9b之後開啟word,竟然報了個mathpage.wll找不到的錯,於是乎逛了各大網站、部落格,一遍遍的試,不知道諸位是不是也和我一樣,屢次操作均是失敗。 但我的一次自行嘗試竟然解決了這個問題,其實解決的方法很簡單。因為由於版本的原因,網
建立web工程Spring配置檔案找不到問題解決方案
2017-11-18 17:09:24 org.apache.catalina.core.StandardContext listenerStart嚴重: Exception sending context initialized event to listener in
修改android studio中的avd sdk路徑、avd sdk找不到的解決方案
很多人都遇到安裝android studio之後需要下載gradle和重新下載avd sdk的問題 首先,設定環境變數,ANDROID_SDK_HOME值為sdk所在目錄,GRADLE_HOME值為gradle所在目錄,在path中新增%ANDROID_SDK_HOME
在Android Studio中找不到AppCompatActivity?解決方案
在建立新的.java檔案時,要匯入父類中的 AppCompatActivity,報錯,無法找到這個父類。 解決方案: 先找到“project structure”快捷鍵也可以,然後找到app--Dependencies,再點選右上角的“+”,出現如下圖所示
【sklearn】在anaconda匯入sklearn出現找不到integrate解決方案
出現問題: 在學習sklearn庫時,匯入包發現如下錯誤: ImportError: cannot import name 'integrate' 解決方案: 首先開啟anaconda pr
Unity_打包Android提示找不到jdk解決方案
Please make sure you have a suitable JDK installation.Android development requires at least JDK 7(1.7),having JRE only is not enoug
maven的webapp專案熱部署到eclipse,biz等子專案的jar包都找不到的解決方案!
eclipse maven 這塊實在是太坑了。。。。右擊專案 到這裡,把本地倉庫的子專案jar加進去即可成功啟動tomcat... ( maven專案期初匯入eclipse都是正常的。當在webapp專案執行MavenClean目錄後就出現了這樣的問題)
更新SDK後ADT版本低不支援,sdk找不到問題解決方案
在android_sdk_windows/tools/lib下的plugin.prop檔案裡被變更為 ? 1 2 3 4 5 # begin plugin.prop plugin.version=23.0.0 # end plugi
spring-boot專案mapperBean找不到問題解決方案
使用spring-boot整合mybatis時遇到了載入不到mapper類檔案bean的情況,網上找了最終終於解決了,我在這裡分享一下整個排查的流程並把網上哪些方法都進行一下彙總。錯誤截圖:上面這個截圖是maven install的時候報出的,大概意思就是沒有可用的Artic
mac下mysqldump找不到命令
出現 $path rmi port 找不到 添加 找到 路徑 .net 之所以會出現MySQL或者mysqldump這樣的命令找不到, 我們可以打開/usr/bin文件夾,發現bin目錄中並沒有mysql打頭的UEF文件, 而在/usr/local/mysql/bi
linux在不關機情況下新增硬盤的方法
span -s centos 沒有 space 註意 can 使用 echo 開機狀態插入硬盤 不關機執行命令 echo "- - -" > /sys/class/scsi_host/host0/scan 註意 echo "- - -" - 中間有空格
Ubuntu下adb找不到裝置問題解決記錄
說在前面: 這個問題遇到的比較多,尤其是公司新來的一些小同事,特此記錄一下。 我們在ubuntu系統下可能會遇到adb devices搜尋不到裝置的情況,尤其是剛拿到一臺新測試裝置的情況下。但是是手機上可以識別usb連線。 這個時候我們先要確認以下兩點: 1.開發者模式是
mac 下 clang++ 找不到標頭檔案 stdlib.h
因為要用 openmp庫,用 clang++ 編譯 c++程式,出現瞭如下報錯: clang++ xx.cpp -o xx -fopenmp /usr/local/Cellar/llvm/7.0.0/include/c++/v1/stdlib.h:94:15: fatal error: 'std