搜尋
首頁Javajava教程Hibernate 如何與 Spring 框架整合?

Hibernate 如何與 Spring 框架整合?

Apr 17, 2024 pm 12:03 PM
mysqlspring

要將 Hibernate 整合到 Spring 框架中,請遵循以下步驟:新增 Maven 相依性;設定資料來源;建立 EntityManager Bean;設定事務管理器;啟用 Persistent Exception Translation。

Hibernate 如何与 Spring 框架集成?

如何將 Hibernate 整合到 Spring 框架?

引言

Hibernate 是一個用於物件-關係映射(ORM) 的持久化框架,而Spring 是一個受歡迎的Java 應用程式框架。將 Hibernate 整合到 Spring 中可以簡化資料庫訪問,並提供企業級功能。

整合步驟

1. 新增依賴項

在Maven 專案的pom.xml 檔案中,新增下列依賴項目:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

2. 設定資料來源

在Spring 設定檔中(例如application.properties),設定資料庫連線詳細資料:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=user
spring.datasource.password=password

3. 建立EntityManager Bean

建立一個EntityManagerFactoryBean Bean 以管理與資料庫的互動:

@Bean
public EntityManagerFactory entityManagerFactory() {
  HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
  vendorAdapter.setGenerateDdl(true);

  LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
  factory.setDataSource(dataSource());
  factory.setJpaVendorAdapter(vendorAdapter);
  factory.setPackagesToScan("com.example.myproject.entity");
  return factory.getObject();
}

4. 設定事務管理器

建立一個PlatformTransactionManager Bean 以管理交易:

@Bean
public PlatformTransactionManager transactionManager(@Qualifier("entityManagerFactory") EntityManagerFactory emf) {
  JpaTransactionManager transactionManager = new JpaTransactionManager();
  transactionManager.setEntityManagerFactory(emf);
  return transactionManager;
}

5. 啟用Persistent Exception Translation

透過在Spring 設定檔中新增下列屬性,啟用Persistent Exception Translation:

spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true

實戰案例

以下Java 程式碼展示如何使用Hibernate 儲存一個實體:

@Entity
public class Person {
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  private String name;
}

@Service
public class PersonService {
  @Autowired
  private EntityManagerFactory entityManagerFactory;

  public void save(Person person) {
    EntityManager entityManager = entityManagerFactory.createEntityManager();
    entityManager.getTransaction().begin();
    entityManager.persist(person);
    entityManager.getTransaction().commit();
  }
}

以上是Hibernate 如何與 Spring 框架整合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。