nested exception is org.hibernate.MappingException: Unknown entity:

来源:互联网 发布:花生壳域名服务器地址 编辑:程序博客网 时间:2024/05/21 20:11

今天编译j2ee项目,ssh框架 发生错误如下:

2014-06-09 23:23:01,894 ERROR [com.mmu.sys.dao.impl.UserProfileDAOImpl] - get failed
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.mmu.common.models.UserProfile; nested exception is org.hibernate.MappingException: Unknown entity: com.mmu.common.models.UserProfile
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:690)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:532)
at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:526)
at com.mmu.sys.dao.impl.UserProfileDAOImpl.findById(UserProfileDAOImpl.java:78)
at com.mmu.sys.service.RegServiceImpl.getUserById(RegServiceImpl.java:64)
at com.mmu.sys.service.RegServiceImpl$$FastClassByCGLIB$$d216bec1.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)

度娘一下,都说是实体类没有引用 import javax.persistence.Entity; 造成的;后来发现跟这个包没有任何关系,完全是个人习惯造成的。

使用hibernate工具生成实体类,同时生成spring dao生成的目录在自建的一个临时目录内,后拷贝到要使用实体类和dao的工程目录内,就产生上述问题。

工具生成的dao的方法中必然有一个 findById 方法:

public UserProfile findById(java.lang.String id) {log.debug("getting UserProfile instance with id: " + id);try {UserProfile instance = (UserProfile) getHibernateTemplate().get("com.mmu.sys.models.UserProfile", id);return instance;} catch (RuntimeException re) {log.error("get failed", re);throw re;}}
其中 com.mmu.sys.models.UserProfile 是工具根据生成的包路径 写死在这个地方的,那么model 更换目录后,就产生上述问题。

0 0
原创粉丝点击