今天處理的任務是從一套系統中分離出微信易信功能代碼添加到另一套系統中..本來是一個很簡單的任務,但是分離移植過去后,一運行報了個錯:
nested exception is org.hibernate.MappingException: Unknown entity
一看錯誤提示,看來是hibernate的映射出問題了,看了一下po類存在,又看了一下映射的.hbm.xml配置文件也在,看了一下內容也沒問題,也不可能有問題本來就是現成系統中分離出來的..有點迷惑了,百度了一下,有說@Entity注解導錯包的,但是這項目根據就沒有用注解..還有說.hbm.xml類名寫錯的,檢查了一下也沒問題,分離出來的也不可能有問題..
這下有點傻了..又跟蹤又抓包看請求的各種招都試了一遍..一點思路都沒有...
然后只能無奈的各種百度,各種翻,基本都是大同小異的沒任何區別..突然想到沒看到hibernate的主配置文件啊..頓時有種想哭又想笑的感覺..對啊,沒hibernate主配置文件啊,那就是在spring的配置文件中導入的,新添加的包的路徑沒添加到spring的配置中..
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"><ref local="mainDataSource"/></property> <property name="mappingDirectoryLocations"> <list> <value>classpath:/com/xxx/xxx/yixin/po</value> <value>classpath:/com/xxx/xxx/wechat/po</value> </list> </property>
添加完,問題解決...真的很無奈...以前一直用spring的自動掃描功能,遇到這種手動配置的還真是各種想不起來啊...果然人是有惰性的...