Spring JPA
安迪源文
小步快走
展开
-
Spring BeanPostProcessor : PersistenceAnnotationBeanPostProcessor
概述PersistenceAnnotationBeanPostProcessor是Spring提供的用于处理注解@PersistenceUnit和@PersistenceContext的BeanPostProcessor。用于注解相应的JPA资源:EntityManagerFactory和EntityManager (或者它们的子类变量)。注意 : 在目前的实现中,PersistenceAn...原创 2019-01-22 15:21:03 · 1785 阅读 · 0 评论 -
Spring Boot 自动配置 : JpaRepositoriesAutoConfiguration
概述JpaRepositoriesAutoConfiguration是Spring Boot关于Spring Data JPA repository的自动配置,其主要目的是扫描和注册开发人员定义的Spring Data JPA repository bean组件。JpaRepositoriesAutoConfiguration在如下条件满足时才生效:已经存在一个javax.sql.Data...原创 2019-07-11 15:03:17 · 2966 阅读 · 0 评论 -
Spring Boot 配置 : HibernateJpaConfiguration
概述HibernateJpaAutoConfiguration是Spring Boot针对Spring Data JPA + Hibernate组合使用的自动配置类。不过HibernateJpaAutoConfiguration主要的配置工作,是通过导入的配置类HibernateJpaConfiguration来完成的。就配置类HibernateJpaConfiguration而言,它继承自Jp...原创 2019-07-10 18:08:50 · 6152 阅读 · 0 评论 -
Spring Data JPA 的启动载入方式
开发人员所定义的JPA Respository最终都是以单例bean组件的形式存在的,并且缺省情况下会在容器启动时初始化。启动过程中,这些bean的创建会跟JPA EntityManager组件交互进行验证和元数据分析。实际上,Spring框架支持EntityManagerFactory在一个后台进程中异步启动,因为该过程耗时较长。为了跟此机制有效配合,Spring框架也允许JPA Reposi...原创 2019-07-13 18:19:28 · 2979 阅读 · 1 评论 -
Spring Boot 配置 : JpaBaseConfiguration
概述JpaBaseConfiguration是Spring Boot提供的对JPA进行配置的抽象基类。针对不同的JPA实现,会有不同的具体实现类。比如Spring Boot内置支持基于Hibernate的JPA,所以它提供了相应的实现HibernateJpaConfiguration。而如果开发人员想使用其他JPA实现,比如EclipseLink或者OpenJPA,就要继承JpaBaseConf...原创 2019-07-09 11:53:03 · 4052 阅读 · 0 评论 -
Spring Data JPA 工作原理分析
开发人员未定义 EntityManagerFactory/EntityManager ,但可以注入 EntityManagerFactory/EntityManager,为什么 ?TBD开发人员继承JpaRepository接口定义自己的repository bean,未提供实现,但可以注入相应的bean,这些bean是怎么来的 ?...原创 2019-07-08 20:53:50 · 1413 阅读 · 0 评论 -
最小化样例演示:JPA多数据源+分布式事务+SpringBoot+Web
Springboot Web应用基于JPA使用多MySQL数据源和分布式事务原创 2017-12-21 18:25:23 · 1243 阅读 · 0 评论 -
Spring Boot 自动配置 : HibernateJpaAutoConfiguration
概述HibernateJpaAutoConfiguration 是Spring Boot针对使用JPA + Hibernate的自动配置类,它的主要目的是在特定条件被满足的情况下导入配置类HibernateJpaConfiguration。关于运行时使用的JPA + Hibernate组件的真正的配置工作,被委托给了HibernateJpaConfiguration来完成。HibernateJ...原创 2019-06-28 09:06:46 · 9271 阅读 · 0 评论 -
JPA : 区分 persist() 和 merge()
区别概述persistInsert a new register to the databaseAttach the object to the entity manager.mergeFind an attached object with the same id and update it.If exists update and return the already...原创 2019-06-25 15:06:20 · 3886 阅读 · 0 评论 -
Spring Data JPA 工作原理 : 自定义JpaRespository接口却不用提供实现
概述当我们使用 Spring Data JPA 的时候,典型的用法是这样的 :将 spring-data-jpa 包,数据库驱动包等添加为项目依赖;配置文件定义相应的数据源;为应用添加注解@EnableJpaRepositories;定义业务领域实体类,比如通过@Entity注解;定义业务领域实体类,比如通过@Entity注解;定义自己业务相关的的JPA repository接口,这...原创 2018-11-14 18:12:26 · 17218 阅读 · 2 评论 -
JPA :为 CriteriaBuilder 增加一个恒值断言 Predicate
当使用JPA进行开发时,有些情况下我们需要为CriteriaBuilder增加一个恒值断言Predicate,比如有时候我们需要组合使用某一个断言,而这个断言仅在特定条件为真时被组合进来,否则不使用该断言,伪代码描述如下 :// 根据条件构建断言 predicateName : 可能为 null,可能不为 nullPredicate predicateName = null;// 这里 c...原创 2019-06-06 08:48:33 · 2804 阅读 · 0 评论 -
Springboot应用中@EntityScan和@EnableJpaRepositories的用法
在Springboot应用开发中使用JPA时,通常在主应用程序所在包或者其子包的某个位置定义我们的Entity和Repository,这样基于Springboot的自动配置,无需额外配置我们定义的Entity和Repository即可被发现和使用。但有的时候我们需要定义Entity和Repository不在应用程序所在包及其子包,那么这时候就需要使用@EntityScan和@EnableJpaRe...原创 2018-11-15 10:17:54 · 44272 阅读 · 5 评论 -
Spring Boot 关于 Hibernate JPA 有关的自动配置
1. HibernateJpaConfiguration(JpaBaseConfiguration)定义组件bean LocalContainerEntityManagerFactoryBean entityManagerFactory定义组件bean PlatformTransactionManager transactionManager2. JpaRepositoriesAutoC...原创 2019-07-12 09:18:30 · 661 阅读 · 0 评论