一、常⽤用 JPA 註解
1、實體
@Entity、@MappedSuperclass
@Table(name)
2、主鍵
@Id
@GeneratedValue(strategy, generator)
@SequenceGenerator(name, sequenceName)
3、映射
@Column(name, nullable, length, insertable, updatable)
@JoinTable(name)、@JoinColumn(name)
4、關係
@OneToOne、@OneToMany、@ManyToOne、@ManyToMany
@OrderBy
5、Project Lombok
@Getter / @Setter
@ToString
@NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor
@Data
@Builder
@Slf4j / @CommonsLog / @Log4j2
二、 Spring Data JPA 操作數據庫
1、Repository
@EnableJpaRepositories
2、根據⽅方法名定義查詢
find…By… / read…By… / query…By… / get…By…
count…By…
…OrderBy…[Asc / Desc]
And / Or / IgnoreCase
Top / First / Distinct
3、分⻚頁查詢
PagingAndSortingRepository<T, ID>
Pageable / Sort
Slice<T> / Page<T>
4、Repository Bean 是如何創建的
JpaRepositoriesRegistrar
激活了了 @EnableJpaRepositories
返回了了 JpaRepositoryConfigExtension
RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions
註冊 Repository Bean(類型是 JpaRepositoryFactoryBean )
RepositoryConfigurationExtensionSupport.getRepositoryConfigurations
取得 Repository 配置
JpaRepositoryFactory.getTargetRepository
創建了了 Repository