hibernate4 org.hibernate.MappingException: Unknown entity:

馒头zz 发布于 2016/10/09 18:07
阅读 671
收藏 0

spring4 +hibernate4 

如果addEntity 那么就会报错,但是不添加是不会报错的,我的猜测是没有加载到映射文件,但是不知道怎么验证.

望大神帮忙,先谢谢了

session.createSQLQuery(queryString).addEntity(entityClass);

访问报错信息如下:

org.hibernate.MappingException: Unknown entity: com.huni.yz.entity.CustomerInfo
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1096)
at org.hibernate.loader.custom.sql.SQLQueryReturnProcessor.getSQLLoadable(SQLQueryReturnProcessor.java:374)
at org.hibernate.loader.custom.sql.SQLQueryReturnProcessor.processRootReturn(SQLQueryReturnProcessor.java:427)
at org.hibernate.loader.custom.sql.SQLQueryReturnProcessor.processReturn(SQLQueryReturnProcessor.java:394)
at org.hibernate.loader.custom.sql.SQLQueryReturnProcessor.process(SQLQueryReturnProcessor.java:196)
at org.hibernate.loader.custom.sql.SQLCustomQuery.<init>(SQLCustomQuery.java:88)
at org.hibernate.engine.query.internal.NativeQueryInterpreterStandardImpl.createQueryPlan(NativeQueryInterpreterStandardImpl.java:84)
at org.hibernate.engine.query.spi.QueryPlanCache.getNativeSQLQueryPlan(QueryPlanCache.java:226)
at org.hibernate.internal.AbstractSessionImpl.getNativeSQLQueryPlan(AbstractSessionImpl.java:305)
at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:311)
at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:141)
at com.huni.yz.dao.impl.basicDaoImpl.findBySQL(basicDaoImpl.java:84)

applicationContext.xml 中sessionFactory 配置

!-- Hibernate Session Factory bean --> 
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" lazy-init="true">
<property name="dataSource" ref="ds"/>
<property name="mappingLocations">
    <list>
         <value>classpath:com/huni/yz/entity/*.hbm.xml</value>
    </list>
 
</property>

 



以下是问题补充:

@馒头zz:映射文件是有问题的,是否会导致这种问题的出现? (2016/10/09 18:10)
加载中
0
zhangcan1
zhangcan1
劝你使用jpa吧;简洁,易开发;
馒头zz
馒头zz
容易上手吗?因为比较急,如果不容易上手的话可能还是想把目前的问题先解决
0
f
fgod
unknown entity,应该不是映射文件没找到,而是实体类没有扫描到吧
馒头zz
馒头zz
<context:component-scan base-package="com.huni.yz.*"/> 我是这样写的 是不是我写的有问题?
f
fgod
spring核心配置文件: <context:component-scan base-package="你的扫描范围"/>
馒头zz
馒头zz
我的实体类和映射文件都在entity下面,我还需要做一些其他的配置吗? <property name="mappingLocations"> <list> <value>classpath:com/huni/yz/entity/*.hbm.xml</value> </list> </property>
f
fgod
你用的spring容器,那就看你的spring注解扫描范围有没有包括进实体吧
馒头zz
馒头zz
实体类扫描是在哪里扫描呢?我可能是什么地方有问题导致我的实体类没找到呢?
0
青苗
馒头zz
馒头zz
后面可以考虑用,现在尝试新框架太冒险了
0
馒头zz
馒头zz
谢谢大家,目前已经知道原因了,因为项目中用了maven,我对maven还不太熟,maven默认放置资源文件的路径是 src/main/resources,而我的映射文件在src/main/java下,所以我的映射文件都没有加载到,于是出现上述报错;
返回顶部
顶部