日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

spring mvc 提示_Spring BootHibernate提示

發布時間:2023/12/3 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring mvc 提示_Spring BootHibernate提示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring mvc 提示

1.概述

Hibernate無需介紹。 它是Java中最受歡迎的ORM。

同樣,Spring Boot是Java中功能最強大,最易于使用的框架。

本教程與Hibernate或Spring Boot無關,其中有大量的內容。

我們將研究在將它們一起使用時可能會遇到的一些常見錯誤以及如何修復它們。

2.依存關系

我們將使用Gradle構建我們的項目。 我建議使用Spring Initializr引導您的項目。

我們將使用:

  • Sprint Boot2
  • Spring Webflux
  • Spring Data JPA
  • Spring數據轉換器
  • 杰克遜注釋
  • Jackson數據類型Hibernate
  • H2數據庫
  • Lombok

Spring Data Envers允許我們訪問Hibernate Envers管理的實體修訂。

杰克遜注釋將幫助我們避免由JPA關系引起的常見堆棧溢出錯誤。

Jackson DataType Hibernate模塊將幫助您處理Hibernate類型和延遲加載方面。

我們將在一段時間內仔細研究所有這些內容。

buildscript {ext {springBootVersion = '2.0.6.RELEASE'} ... }dependencies {implementation('org.springframework.boot:spring-boot-starter-data-jpa')implementation('org.springframework.boot:spring-boot-starter-webflux')implementation("org.springframework.data:spring-data-envers")implementation("com.fasterxml.jackson.core:jackson-annotations:2.9.7")implementation("com.fasterxml.jackson.datatype:jackson-datatype-hibernate5:2.9.7")runtimeOnly('com.h2database:h2')compileOnly('org.projectlombok:lombok') ... }

我們將使用H2來運行我們的項目。

3.實體

在此示例中,我們將使用JPA創建大學和學生。

將常見的邏輯和屬性存儲在超類中總是一個好主意。

我們將為我們的實體創建一個超類并在其中存儲通用屬性。

讓我們看一下我們的BaseEntity類。

@Getter @Setter @NoArgsConstructor @AllArgsConstructor @FieldDefaults(level = AccessLevel.PRIVATE) @MappedSuperclass @EntityListeners({AuditingEntityListener.class}) @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id") public abstract class BaseEntity {@Id@GeneratedValueLong id;@CreatedDateLocalDateTime createdAt;@LastModifiedDateLocalDateTime updatedAt; }

您可以注意到的一件事是,我沒有在課程上使用Lombok的@Data批注。 @Data注釋會自動添加@ToString注釋,這可能會導致堆棧溢出錯誤。 因此,最好手動管理注釋。

@MappedSuperclass批注允許實體從基類繼承屬性。 如果要從基類繼承屬性,則此批注非常重要。

@EntityListeners({AuditingEntityListener.class})啟用審核。 我們使用@CreatedDate和@LastModifiedDate來捕獲創建或修改實體的時間。 Spring Data JPA將對此進行照顧。

將我們的實體轉換為JSON時, @JsonIdentityInfo將避免堆棧溢出錯誤。
由于我們實體之間的雙向關系,需要使用此注釋來打破無限循環。

您可能還想查看@JsonBackReference和@JsonManagedReference以了解它們是否更符合您的要求。

讓我們來看看我們的大學和學生實體。

@Getter @Setter @NoArgsConstructor @AllArgsConstructor @Builder @FieldDefaults(level = AccessLevel.PRIVATE) @Entity @Audited public class Student extends BaseEntity{String name;@ManyToOneUniversity university; }@Getter @Setter @NoArgsConstructor @AllArgsConstructor @Builder @FieldDefaults(level = AccessLevel.PRIVATE) @Entity @Audited public class University extends BaseEntity{String name;String city;@OneToMany(mappedBy = "university")Set<Student> students = new HashSet<>(); }

@Audited將使Hibernate管理該實體上的審核(跟蹤更改)。

4.配置

讓我們檢查運行項目所需的配置。

Hibernate杰克遜模塊

@Bean public Module hibernateModule(){return new Hibernate5Module(); }

我們正在注冊一個新的Jackson模塊。
Spring Boot將自動檢測它并將其注冊到ObjectMapper bean。

HibernateEnvers

為了啟用Envers審核,我們必須使用RevisionRepository擴展我們的存儲庫。

讓我們看看我們的UniversityRepository 。

public interface UniversityRepository extends RevisionRepository<University, Long, Long>, JpaRepository<University,Long> { }

我們必須對StudentRepository同樣進行此StudentRepository 。

public interface StudentRepository extends RevisionRepository<Student, Long, Long>, JpaRepository<Student,Long> { }

我們還必須使用@EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class)注釋主類。

在經歷了我們需要的其他注釋之后,我們將在一段時間內查看主類。

Spring數據審核

為此,我們必須使用@EnableJpaAuditing注釋我們的主類。

讓我們看看。

@SpringBootApplication @EnableJpaAuditing @EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class) public class HibernateTipsApplication {public static void main(String[] args) {SpringApplication.run(HibernateTipsApplication.class, args);} }

5.結論

我已經嘗試通過一個簡單的示例解釋如何使用Spring Boot&Hibernate創建REST應用程序。

這可能會解決您的某些堆棧溢出錯誤。
否則,您可能要考慮編寫自己的數據傳輸對象(DTO)。

如果您需要對核心Hibernate ORM不支持的數據類型的支持,則可能需要簽出該庫 。

您可以閱讀有關以下內容的更多信息:

  • Spring Data JPA

您可以在Github上找到完整的示例。

翻譯自: https://www.javacodegeeks.com/2019/01/spring-boot-hibernate-tips.html

spring mvc 提示

總結

以上是生活随笔為你收集整理的spring mvc 提示_Spring BootHibernate提示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。