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. 要么就把垃圾数据从数据库删掉。

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

时间: 2024-11-06 07:09:18

Hibernate报错:org.hibernate.ObjectNotFoundException: No row with the given identifier exists 解决办法的相关文章

org.hibernate.ObjectNotFoundException: No row with the given identifier exists

维护老系统时出现的问题,出现的原因我简述一下: table1与table2是关联表,T1中有T2的主键 "T1_id",当T1中的 "T2_id" 不为null时,而T2中的"T2_id"为空,那么就会报上面这个错. 反之T1的"T2_id"为null,而T2中的"T2_id"不为null,没有任何影响. 所以这个错误是由于数据不匹配出现的. 解决方案: 1.在映射文件里加上 not-found="

mysql报错:Access denied for user &#39;root&#39;@&#39;localhost&#39; 的一次解决办法

Centos6.5 X64,Mysql 5.6.20 X64 均是64位 顺便记录一下,方便后来人. 1.java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 确认用户名.密码是正确的. select * from mysql.user;之后,发现 没有localhost用户 可以复制一行 127.0.0.1的记录,然后再次修改密码 mysql> UPDATE user SET

(转)启动网卡报错(Failed to start LSB: Bring up/down networking )解决办法总结

启动网卡报错(Failed to start LSB: Bring up/down networking )解决办法总结 原文:http://blog.51cto.com/11863547/1905929 http://blog.csdn.net/debimeng/article/details/74296152?utm_source=itdadao&utm_medium=referral Failed to start LSB: Bring up/down networking 遇到这个错误好

Docker容器互联网络报错:WARNING: IPv4 forwarding is disabled. Networking will not work.解决办法(centos7)

Docker容器互联网络报错:WARNING: IPv4 forwarding is disabled. Networking will not work. 解决办法: echo net.ipv4.ip_forward=1 >> /usr/lib/sysctl.d/00-system.conf systemctl restart network 原文地址:https://www.cnblogs.com/pqshen/p/12159955.html

yum报错:This system is not registered to Red Hat Subscription Management.解决办法

使用yum安装软件,报错如下: [[email protected] ~]# yum -y install mariadbLoaded plugins: langpacks, product-id, subscription-managerThis system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.No package mariadb

Eclipse启动报错:A java runtime Environment(JRE) or java Development……的解决办法

打开Eclipse图标,结果报错如下. 网上都说是环境变量PATH的问题,联想到由于以前环境变量PATH=E:\Java\jdk1.8.0_91;而没有通过JAVA_HOME来配置. 昨天安装了Tomcat之后需要用到JAVA_HOME,于是添加了JAVA_HOME环境变量,并重新配置了环境变量PATH=%JAVA_HOME%; 解决方案: 变量名:JAVA_HOME 变量值:E:\Java\jdk1.8.0_91 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib; 变量名

CURL命令报错:dyld: lazy symbol binding failed: Symbol not found: _SSL_load_error_strings解决办法

Mac OS X 10.11.6, curl 命令报错,错误如下: dyld: lazy symbol binding failed: Symbol not found: _SSL_load_error_strings Referenced from: /usr/local/lib/libcurl.4.dylib Expected in: flat namespace dyld: Symbol not found: _SSL_load_error_strings Referenced from:

ehcache报错ERROR n.s.e.store.disk.DiskStorageFactory - Disk Write的解决办法

23:53:44 ERROR n.s.e.store.disk.DiskStorageFactory - Disk Write of com.koal.**.**.**.**.**.***Impl$$EnhancerBySpringCGLIB$$5b782dcf.query****.2063333947 failed: java.io.NotSerializableException: com.koal.**.**.entity.**.helloDO 看图很明显,其中问题就是helloDO没有序

Linux格式化分区报错Could not start /dev/sda No such file or directory 解决办法

查看已经分好的区 [[email protected] ~]# fdisk -l /dev/sda   Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280bytes Sector size (logical/physical): 512 bytes /512 bytes I/O size (m