1報錯org.hibernate.MappingException: Unknown entity: com.pkms.entity.Userat org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:628)at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:91)at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906)at org.hibernate.impl.SessionImpl.get(SessionImpl.java:843)at org.hibernate.impl.SessionImpl.get(SessionImpl.java:836)at com.core.hibernate.HibernateDao.get(HibernateDao.java:39)at com.core.hibernate.HibernateDao.get(HibernateDao.java:47)at com.core.hibernate.HibernateDao$$FastClassByCGLIB$$b72f665e.invoke(<generated>)at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
2.原因
1) could not load an entity: [com.kaisir.server.vo.User#1]
2) 關鍵字 ‘User’ 附近有語法錯誤。
因為hibernate相關的部分都是由MyEclipse產生的,從對應檔到vo,理論上是不會出錯的,後來經過檢查,發現出錯原因在於“User”這個是Sql Server的關鍵字,Hibernate沒智能到給關鍵字加上”[ ]“以示區分。
3.解決
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
添加
<property name="packagesToScan" value="com.pkms.*" />
@Table(name = "users", schema = "dbo",catalog = "pkms")
最後 改資料庫名 t_user 解決
原來是 表明與資料庫關鍵字衝突造成。汗。