美文网首页
级联表外键对象不存在

级联表外键对象不存在

作者: 金声玉振 | 来源:发表于2015-05-18 17:06 被阅读972次

    表ListRelation通过resourceId与resource表级联:

    @ManyToOne(fetch = FetchType.LAZY)

    @JoinColumn(name = "resource_id")

    @NotFound(action=NotFoundAction.IGNORE)

    private Resource resource;

    如果数据库中有一个资源在resource表中找不到,调用(ListRelation)obj.getResource( )时会报异常:

    com.sun.jdi.InvocationException occurred invoking method.

    解决方法就是在级联表时加入一个属性,上面粗体显示,注解配置实体类的关联关系,在many-to-one,one-to-one关联中,一边引用自另一边的属性,如果属性值为某某的数据在数据库不存在了,hibernate默认会抛出异常。解决此问题,加上如下注解就可以了:

    @NotFound(action=NotFoundAction.IGNORE),意思是找不到引用的外键数据时忽略,NotFound默认是exception

    JPA注解记录

    相关文章

      网友评论

          本文标题:级联表外键对象不存在

          本文链接:https://www.haomeiwen.com/subject/rdclqttx.html