表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
网友评论