要將 Hibernate 整合到 Spring 框架中,請遵循以下步驟:新增 Maven 相依性;設定資料來源;建立 EntityManager Bean;設定事務管理器;啟用 Persistent Exception Translation。
如何將 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中文網其他相關文章!