首页 > 技术文章 > 数据表中记录明明有,session.get(类.class, id);返回null

jnhs 2019-08-23 17:11 原文

 

 

 

出现null的处理思路首先检查数据库中是否真的有这个记录

确实存在的,用接口查一下最大值,也是存在的,数据库连接正常

写sql也可以查得到

 

然而诡异的事情出现了

难道是一直在用的dao代码出了问题?

   public Article getById(Session session, int id) {
        return (Article) session.get(Article.class, id);
    }

 

换一个id试试,,,要死啊,代码没问题啊

 实在没办法了,当我把查询hql写为

的时候,终于看到有用的错误信息了

org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.hs.model.SectionModel#0]

 

啊原来是sectionId外键引用了不存在的section表记录

打开表,一看,那可不

id最小就是1了

把记录修改一下

问题解决

 

 但是这还没有办法解决我的业务问题,未完待续

 

推荐阅读