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


    hibernate项目里面配了很多many-to-one的关联,后台在查询数据时已经作了健全性判断,但还是经常抛出对象找不到异常:
     
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists  
    因为系统给用户使用过程中库表的数据会常发生变化,最常见的是人员变化,原先引用的User 在库表没了,hibernate 多对一关联,多的这端引用的一的那端,如此引用值在一的那端找不到数据,默认就会抛出异常;而后台判断控制不了此问题。解决办法:
    在many-to-one的这端加上属性:not-found=ignore

    hibernate many-to-one的属性not-found,用来指定引用的外键不存在时如何处理:

    exception(默认)抛出异常
    ignore 忽略

     

    注解

    @NotFound(action=NotFoundAction.IGNORE)

     

    实列

        @ManyToOne(cascade={CascadeType.PERSIST},targetEntity=QeTopic.class)
        @JoinColumn(name="topic_id",updatable=false)
        @NotFound(action=NotFoundAction.IGNORE)
        private QeTopic qeTopic;

    配置文件

     

    .在<many-to-one>中设置not-found="ignore"

     

  • 相关阅读:
    孙权劝学
    劝学
    为学
    字符串的全排列
    剑指offer面试题3二维数组中的查找
    如何正确安装软件
    写给自己的话
    Linux常用命令
    第三届华为杯
    D^3ctf两道 pwn
  • 原文地址:https://www.cnblogs.com/cn-chy-com/p/8810374.html
Copyright © 2020-2023  润新知