hibernate 出现org.hibernate.MappingException: Unknown entity的解决办法

本文针对Hibernate使用过程中遇到的根据ID查询出现的org.hibernate.MappingException异常进行了解析,并提供了多种解决方案,包括修正实体类注解导入、正确配置实体类XML文件、调整getSession方法等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在使用hibernate时根据ID查询时,出现了org.hibernate.MappingException: Unknown entity异常

经过百度得知出现这两种错误的原因无外乎两种

  1. 如果你使用的是注解方式,那么可能是包导错了,需要将import org.hibernate.annotations.Entity;修改为import javax.persistence.Entity;一般来说错误就可以解决了
  2. 如果你使用的是xml配置,那么可能是在cfg文件中没有将实体类的.hbm.xml文件引入,将其正确引入一般就可以解决问题,如果还是解决不了,那可能是session出现问题,检查你的获取session时的代码是否正确,不同版本有不同的方式
  3. 如果你偷懒使用的是逆向工程自动生成的代码,就像我一样,当你正确的配置xml文件或者注解时没有出现任何问题,那么出现这种问题的原因就是session出现了问题,看看你自动生成的dao文件,其中有一项根据ID来查找,将其中的                                                                                     public ProductInfo findById(java.lang.Integer id) {
    log.debug("getting ProductInfo instance with id: " + id);
    try {
    ProductInfo instance = (ProductInfo) getCurrentSession().get(
    "ProductInfo", id);
    return instance;
    } catch (RuntimeException re) {
    log.error("get failed", re);
    throw re;
    }
    }
    修改为                                                                                                                                                                                                     public ProductInfo findById(java.lang.Integer id) {
    log.debug("getting ProductInfo instance with id: " + id);
    try {
    ProductInfo instance = (ProductInfo) getCurrentSession().get(
    ProductInfo.class, id);
    return instance;
    } catch (RuntimeException re) {
    log.error("get failed", re);
    throw re;
    }
    }
  4. 如果不是以上几种情况就要自行解决了
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值