jpa 查询 报错 EntityNotFoundException

发布时间 2023-11-08 10:24:30作者: 人间春风意

背景:

使用JPA查询,串接到另外一张表时,由于没有实际在表格关系中指定外键,而是在实体类中指定外键

导致关联表中的数据被删除时,JPA查询时,报错EntityNotFoundException

方案:

在实体类的关联属性上,添加注解,并新增自定义序列化过滤器

@JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = XXXFilter.class)

  

public class XXXFilter {
 
    //返回true时 不进行序列化
    @Override
    public boolean equals(Object obj) {
        if (obj == null || obj.equals("") || obj.equals(0)) {
            return true;
        }
        try {
            if (obj.toString() != null) { // 避免EntityNotFoundException异常时被序列化
                return false;
            }
        } catch (Exception e) {
            return true;
        }
        return false;
    }
}