hibernate+spring save的时候为什么报nested exception is org.hibernate.MappingException:

时间:2022-02-17 19:11:39
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.setecusa.hibernate.tblinventorylog.Tblinventorylog; nested exception is org.hibernate.MappingException: Unknown entity: com.setecusa.hibernate.tblinventorylog.Tblinventorylog


//-----这是配置文件---
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.setecusa.hibernate.tblinventorylog.Tblinventorylog" table="tblInventoryLog" lazy="false">
        <id name="fldId" type="java.lang.Integer">
            <column name="fldId"/>
            <generator class="increment"/>
        </id>
        
        <property name="fldPid" type="java.lang.Integer">
           <column name="fldPid"/> 
        </property>
        
        <property name="fldCustomLabel" type="java.lang.String">
           <column name="fldCustomLabel"/> 
        </property>
        
         <property name="fldDate" type="java.lang.String">
           <column name="fldDate"/> 
        </property>
        
         <property name="fldQty" type="java.lang.Integer">
           <column name="fldQty"/> 
        </property>
        
         <property name="fldUnitsCost" type="java.lang.Double">
           <column name="fldUnitsCost"/> 
        </property>
    </class>
    
</hibernate-mapping>


我没发现哪里配错了呀。这是什么原因。。。急,,,,卡一天了。

12 个解决方案

#1


com.setecusa.hibernate.tblinventorylog.Tblinventorylog
这个写错了,或者路径不对,这个是实体类

#2


引用 1 楼 cjzlcsf 的回复:
com.setecusa.hibernate.tblinventorylog.Tblinventorylog
这个写错了,或者路径不对,这个是实体类


是实体类没错,我按ctrl键还能找到这个 class

#3


路径,大小写。必须一样的,肯定是这个啊,都找不到呢。

#4


就是没弄明白到底错哪了,我在 applicationContext.xml中还
<property name="mappingResources">
<list>      
<value>com/setecusa/hibernate/tblinventorylog/Tblinventorylog.hbm.xml</value>  
</list>
</property>

就是没看出来错哪里了。

#5


这是错误: 我看了这个entity 没写错。。。


org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.setecusa.hibernate.tblinventorylog.Tblinventorylog; nested exception is org.hibernate.MappingException: Unknown entity: com.setecusa.hibernate.tblinventorylog.Tblinventorylog
Caused by: org.hibernate.MappingException: Unknown entity: com.setecusa.hibernate.tblinventorylog.Tblinventorylog
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:98)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:635)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:632)
at com.setecusa.hibernate.tblinventorylog.TblinventorylogDAO.save(TblinventorylogDAO.java:23)
at com.setecusa.spring.TblinventorylogServiceImpl.createNewTblinventorylog(TblinventorylogServiceImpl.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy8.createNewTblinventorylog(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNewTblinventorylog(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNewTblinventorylog(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNewTblinventorylog(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNewTblinventorylog(Unknown Source)
at com.setecusa.quartz.inventorylog.InventoryLogQuartz.execute(InventoryLogQuartz.java:22)
at org.quartz.core.JobRunShell.run(JobRunShell.java:199)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546)

#6


没看到哪错误了!给你一个解决方案!
把你数据库中相应的表删除,然后在applicationContext.xml中加上
<property name = "hibernate.hbm2ddl.auto" value = "update"/>
然后在去运行,试一试

#7


引用 6 楼 ghsau 的回复:
没看到哪错误了!给你一个解决方案!
把你数据库中相应的表删除,然后在applicationContext.xml中加上
<property name = "hibernate.hbm2ddl.auto" value = "update"/>
然后在去运行,试一试


还是不行,table都没建来,applicationContext.xml没加载吧,我有两个数据源,分别写在两个applicationContext.xml文件中,然后结合quartz写了个applicationContext.xml,在Quartz的applicationContext.xml中import 那两个配置文件,可能是没加载进来,所以找不到对应的映射文件。

#8


期待高人指点。。。。。

#9


唉,花了我两天的时间,抱这错真的是不着边际。跟数据源有关。
汗汗汗。。。。。。。。。。。。。

#10


我也遇到过这个问题,原因是DAO里的方法 拼SQL的时候 把对象的大小写搞错了,
因为是字符串,所以eclipse不会报错,希望对你有所帮助

#11


我也遇到同样问题,楼主怎么解决的能说详细点吗

#12


引用 11 楼 ferrarij 的回复:
我也遇到同样问题,楼主怎么解决的能说详细点吗


我项目中用到了两个数据库,所以配了两个数据源,因在配置文件中某些<bean的name相同导致的。

#1


com.setecusa.hibernate.tblinventorylog.Tblinventorylog
这个写错了,或者路径不对,这个是实体类

#2


引用 1 楼 cjzlcsf 的回复:
com.setecusa.hibernate.tblinventorylog.Tblinventorylog
这个写错了,或者路径不对,这个是实体类


是实体类没错,我按ctrl键还能找到这个 class

#3


路径,大小写。必须一样的,肯定是这个啊,都找不到呢。

#4


就是没弄明白到底错哪了,我在 applicationContext.xml中还
<property name="mappingResources">
<list>      
<value>com/setecusa/hibernate/tblinventorylog/Tblinventorylog.hbm.xml</value>  
</list>
</property>

就是没看出来错哪里了。

#5


这是错误: 我看了这个entity 没写错。。。


org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: com.setecusa.hibernate.tblinventorylog.Tblinventorylog; nested exception is org.hibernate.MappingException: Unknown entity: com.setecusa.hibernate.tblinventorylog.Tblinventorylog
Caused by: org.hibernate.MappingException: Unknown entity: com.setecusa.hibernate.tblinventorylog.Tblinventorylog
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:98)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:635)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:632)
at com.setecusa.hibernate.tblinventorylog.TblinventorylogDAO.save(TblinventorylogDAO.java:23)
at com.setecusa.spring.TblinventorylogServiceImpl.createNewTblinventorylog(TblinventorylogServiceImpl.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy8.createNewTblinventorylog(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNewTblinventorylog(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNewTblinventorylog(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNewTblinventorylog(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy9.createNewTblinventorylog(Unknown Source)
at com.setecusa.quartz.inventorylog.InventoryLogQuartz.execute(InventoryLogQuartz.java:22)
at org.quartz.core.JobRunShell.run(JobRunShell.java:199)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:546)

#6


没看到哪错误了!给你一个解决方案!
把你数据库中相应的表删除,然后在applicationContext.xml中加上
<property name = "hibernate.hbm2ddl.auto" value = "update"/>
然后在去运行,试一试

#7


引用 6 楼 ghsau 的回复:
没看到哪错误了!给你一个解决方案!
把你数据库中相应的表删除,然后在applicationContext.xml中加上
<property name = "hibernate.hbm2ddl.auto" value = "update"/>
然后在去运行,试一试


还是不行,table都没建来,applicationContext.xml没加载吧,我有两个数据源,分别写在两个applicationContext.xml文件中,然后结合quartz写了个applicationContext.xml,在Quartz的applicationContext.xml中import 那两个配置文件,可能是没加载进来,所以找不到对应的映射文件。

#8


期待高人指点。。。。。

#9


唉,花了我两天的时间,抱这错真的是不着边际。跟数据源有关。
汗汗汗。。。。。。。。。。。。。

#10


我也遇到过这个问题,原因是DAO里的方法 拼SQL的时候 把对象的大小写搞错了,
因为是字符串,所以eclipse不会报错,希望对你有所帮助

#11


我也遇到同样问题,楼主怎么解决的能说详细点吗

#12


引用 11 楼 ferrarij 的回复:
我也遇到同样问题,楼主怎么解决的能说详细点吗


我项目中用到了两个数据库,所以配了两个数据源,因在配置文件中某些<bean的name相同导致的。