如何解决Hibernate的org.hibernate.query.sqm.UnknownEntityException异常?
问题解决方法
这个错误是Hibernate找不到Laptop实体导致的,按下面步骤排查修复:
修正HQL语句的实体名:HQL里引用的是Java实体类名,不是数据库表名。你代码里写的是
from laptop,但你的实体类是Laptop(首字母大写),所以把语句改成:String stmt = "from Laptop where image_url = :imageUrl";同时别用字符串拼接传参,容易引发SQL注入,改用参数绑定更安全:
List<Laptop> laptopList = session.createQuery(stmt, Laptop.class) .setParameter("imageUrl", data1) .getResultList();确认实体类的映射配置:
- 检查
Laptop类上是否添加了@Entity注解,且类名和HQL里的一致(注意大小写); - 确保Hibernate的配置文件(如
hibernate.cfg.xml)里已经通过<mapping class="你的包路径.Laptop"/>注册了这个实体,或者项目用了Spring等框架时,配置了正确的实体类包扫描。
- 检查
验证SessionFactory的配置:确认SessionFactory初始化时加载了
Laptop实体的映射信息,没有遗漏这个类。
内容的提问来源于stack exchange,提问作者MDB
相关产品推荐
相关产品推荐

