怎么注册com网站免费的,遵义做网站建设哪家公司好,旌阳移动网站建设,东道设计属于什么档次1、EntityNotFoundException#xff08;实体不存在异常#xff09;: 通过 JPA 查找一个不存在的实体。
2、NonUniqueResultException#xff08;非唯一结果异常#xff09;#xff1a; 查询返回了多个结果#xff0c;但期望只有一个结果。
3、TransactionRequiredExcep…1、EntityNotFoundException实体不存在异常: 通过 JPA 查找一个不存在的实体。
2、NonUniqueResultException非唯一结果异常 查询返回了多个结果但期望只有一个结果。
3、TransactionRequiredException 需要事务支持的异常
表示在执行一个需要在事务中进行的操作时但当前没有活动的事务。这通常发生在没有事务管理的环境中或者在执行需要事务的操作时没有启动事务。
具体案例
一个简单的服务类执行了需要在事务中进行的数据库更新操作。
4、Spring Data Jpa抛出异常NonUniqueObjectException
框架使用的SpringBoot首先谈论一下Jpa、Spring Data Jpa、Hibernate三者的关系
JPA的是 Java Persistence API 的简写是Sun官方提出的一种ORM规范注意不是ORM框架——因为JPA并未提供ORM实现它只是制订了一些规范提供了一些编程的API接口但具体实现则由服务厂商来提供实现。Hibernate是JPA规范的完整实现。并已获得Sun的兼容认证。Spring Data JPA是Spring官方在JPA规范的基础下只提供了Repository层的实现。 因此SpringBoot中的ORM框架也是有Hibernate的。这个异常就是Hibernate抛出的。
熟悉Hibernate的应该会知道它的缓存。 如果用户试图将同一个Java类的两个不同实例与一个特定标识符(在一个Session范围内)关联就会发生这种情况。将抛出NonUniqueObjectException异常其实也就是出现主键不唯一的意思。 所以要在主键id上添加注解GeneratedValue(strategy GenerationType.IDENTITY)就是告诉它这个主键会由数据库自动生成。因此在缓存中会给每个实例添加一个标识用以区分所有的实例在提交给数据库后并不会对主键id产生影响。