Hibernate报错:org.hibernate.ObjectNotFoundException: No row with the given identifier exists 解决办法

匿名 (未验证) 提交于 2019-12-02 23:40:02

转自:https://www.cnblogs.com/crazytrip/p/5355056.html

报错信息:

 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的记录找不到。也就是存在垃圾数据,可能是因为没有连带删除。

解决办法:

即:

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

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

补充:如果使用注解的话,可以加上:

     @OneToOne(fetch = FetchType.LAZY) 	@JoinColumn(name="value_id") 	@NotFound(action= NotFoundAction.IGNORE) 	public Value getValue() { 		return value; 	}

文章来源: https://blog.csdn.net/Dongguabai/article/details/91425794
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!