org.hibernate.MappingException: Unknown entity: com.pkms.entity.User

 
1报错
org.hibernate.MappingException: Unknown entity: com.pkms.entity.User
	at 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()
	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.解决

    "sessionFactory"

       class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

 

添加

       "packagesToScan" value="com.pkms.*" />

 

 

@Table(name = "users", schema = "dbo",catalog = "pkms")

 

 

最后  改数据库名 t_user  解决

原来是 表明与数据库关键字冲突造成。汗。

你可能感兴趣的:(Spring,Java)