Hibernate报错:org.hibernate.ObjectNotFoundException: No row with the given identifier exists 解决办法(示例代码

Posted 穷苦书生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate报错:org.hibernate.ObjectNotFoundException: No row with the given identifier exists 解决办法(示例代码相关的知识,希望对你有一定的参考价值。

报错信息:

org.hibernate.event.internal.DefaultLoadEventListener onLoad
INFO: HHH000327: Error performing load command : org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.weixin.db.model.Adminusers#15]

报错分析:

Hibernate的映射文件,表A里关联了表B的主键,当查询表A时,在B表里找不到对应记录时就会报错,如果只是逻辑删除不会报这种错误,只有当表B里测试没有id为15的这条数据了才会报错(已实际测试过);上面报错信息实体类后面【#15】表示实体类对应表id=15的记录找不到。也就是存在垃圾数据,可能是因为没有连带删除。

 

解决办法:

1. 修改配置文件加上 not-found="ignore" ”

即:

<many-to-one name="adminusers" class="com.weixin.db.model.Adminusers"
     fetch="select" lazy="false" not-found="ignore">

2. 要么就把垃圾数据从数据库删掉。

 

项目中遇到的问题,记录一下。

 

以上是关于Hibernate报错:org.hibernate.ObjectNotFoundException: No row with the given identifier exists 解决办法(示例代码的主要内容,如果未能解决你的问题,请参考以下文章

hibernate jpa 报错

SSH整合报错:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped

解决org.hibernate.LazyInitializationException的正确姿势

org.hibernate.hql.QueryExecutionRequestException:org.hibernate.hql.QueryExecutionRequestException:

Hibernate中写代码报错怎么解决 Date是日期格式是否咋写啊

java.lang.NoClassDefFoundError: org/hibernate/QueryTimeoutException