You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hibernate执行查询报Person is not mapped错误,类名正确仍报错如何解决?

问题根因

Hibernate实体扫描路径配置错误,导致Person实体类未被识别加载,执行HQL查询时就会触发Person is not mapped错误。

你提供的applicationContext.xml中,LocalSessionFactoryBean的p:packagesToScan属性仅配置了ch.fdsgn.dao包,而Person实体类存放在ch.fdsgn.models包下,Hibernate只会扫描指定路径下的类识别实体,自然无法匹配到Person类。

修复方案

修改applicationContext.xml中的packagesToScan配置,加入实体类所在的包路径,多包路径用英文逗号分隔即可:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
    p:dataSource-ref="webDataSource"
    p:packagesToScan="ch.fdsgn.models,ch.fdsgn.dao"
    p:hibernateProperties-ref="hibernateProperties"/>

可选检查项

如果修改后仍报错,可以排查以下两点:

  • 确认实体类上的@Entity注解导入的是javax.persistence.Entity,不要误导入Hibernate自定义的Entity注解,你当前的导入配置是正确的。
  • 确认HQL语句中写的是实体类名Person,而不是数据库表名users,你当前的HQL写法符合规范。

内容的提问来源于stack exchange,提问作者Adobe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:54:02