`
zhoujiangzi
  • 浏览: 91411 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JPA关联找不到关联信息

阅读更多

今天在调试程序时,出现下面这个错误:

 

javax.persistence.EntityNotFoundException: Unable to find XXXX with id 17290

  发现JPA在关联的时候,找不到子表中的数据,后来发现时有其他同事把子表中的数据删除了,造成该错误。

 

由于表结构中没有创建关联关系,所以一不小心就容易出现这个错误。

下面就记录下我的解决方法:

1. 将对应的数据补上,避免关联的时候一端出现空数据,从而造成错误。

    这个方法对于数据比较多的时候,还是比较纠结的,但是能保证数据的完整性

2. 为关联的字段设置注解,没有找到对象时,给出相应的处理。

    为字段加上@NotFound 注解,该注解的target是@Target( { METHOD, FIELD }),所以可以在方法和字段上进行添加,该注解默认返回的数据为:

NotFoundAction action() default NotFoundAction.EXCEPTION

 即需要我们处理对应的异常信息,还有一种方式IGNORE

 

 

public enum NotFoundAction {
	/**
	 * raise an exception when an element is not found (default and recommended)
	 */
	EXCEPTION,
	/**
	 * ignore the element when not found in DB
	 */
	IGNORE
}

 通过添加ignore的属性,那么在找不到子表数据时,直接返回null。

 

 

 

分享到:
评论

相关推荐

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    这个项目包括5个实体,这5个实体之间具有复杂的关联关系,而且业务逻辑也相对复杂,希望让读者理论联系实际,真正将jsf+ejb 3+jpa整合真正运用到实际开发中。该案例采用目前最流行、最规范的java ee架构,整个应用...

    快速学习-Spring Data JPA 之 ORM概述

    在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射 简单的说:ORM...

    Hibernate数据持久层框架.rar

    是一款面向对象的ORM框架,JPA不需要关心数据库字段,通过注解将数据库表与实体完成映射,在java中的操作只需要对实体进行操作即可。 什么是ORM? ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象...

    Hibernate实战(第2版 中文高清版)

     12.1.2 把级联应用到关联   12.1.3 使用传播性状态   12.1.4 利用JPA的传播性关联   12.2 大批量和批量操作   12.2.1 使用HQL和JPA QL的大批量语句   12.2.2 利用批量处理   12.2.3 使用无状态的会话...

    specification-arg-resolver:使用Spring MVC和Spring Data JPA过滤数据的替代API

    使用Spring MVC和Spring Data JPA过滤数据的替代API。 可以在我的博客中找到该组件的完整介绍和原始原理: : 。 在此文件中,您可以找到所有当前功能的摘要以及一些API示例。 您还可以查看使用此库的可运行的...

    Hibernate注释大全收藏

    这种策略支持双向的一对多关联,但不支持 IDENTIFY 生成器策略,因为ID必须在多个表间共享。一旦使用就不能使用AUTO和IDENTIFY生成器。 每个类层次结构一张表 @Entity @Inheritance(strategy=InheritanceType....

    KanColle-JSON-Data:舰队Collection的JSON格式基础数据

    如果使用Java,可以利用这些类,用JSON序列化库反序列化后,再配合支持JPA注解的ORM框架(例如Hibernate)持久化到数据库。 为了和JSON数据的格式一致,关联字段只声明了关联实体的主键属性,并没有写成嵌套实体类的...

    在Spring JPA中汇总来自多个表的数据的正确方法

    我有一个问答部分,其中每个问题和答案都有与之关联的用户个人资料卡。 其中显示用户名,积分等。组成此用户个人资料卡的数据分布在多个表中。 我正在从每个表中获取一两列。 现在我不确定...

    Java EE常用框架.xmind

    如果查询不到,realm返回null,FormAuthenticationFilter向request域中填充一个参数(记录了异常信息) 退出 不用我们去实现退出,只要去访问一个退出的url(该 url是可以不存在),由LogoutFilter...

    Spring面试题

    -(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法; -(6)Action的execute()方法返回一个ActionForward...

    Hibernate注解

    * 5.identity 使用SQL Server和MySQL的自增字段,这个方法不能放到Oracle中,Oracle不支持自增字段,要设定sequence(MySQL和SQL Server中很常用)。等同于JPA中的IDENTITY * 例:@GeneratedValue(generator = ...

    spring-data-rest:弹簧数据休息

    这需要您的 JPA 存储库并使用 HTTP 将它们作为前端,从而允许您对实体进行完整的 CRUD 功能,包括管理关联。 安装 安装说明在文档中: 执照 Spring Data REST 是。 为 Spring Data Rest 做贡献## 以下是您参与社区...

    java8源码-LearnSpring:学习springboot

    关联注解 所在模块 所在包 实现方式 事务(Transactional) 缓存 JPA MVC 自动化配置 bean validate 学习Spring的关键 理解“注解派生性”。 注解就相当于在业务开发中的功能需求,重点是理解加上注解之后程序如何将...

    Struts2 in action中文版

    10.2 将动作关联到验证框架 222 10.2.1 使用ActionClass-validations.xml声明验证元数据 223 10.2.2 研究内建的验证器 226 10.3 编写自定义验证器 227 10.3.1 检查密码强度的自定义验证器 227 10.3.2 使用自定义数据...

Global site tag (gtag.js) - Google Analytics