springboot整合jpa配置类
时间: 2023-09-07 08:13:19 浏览: 48
在SpringBoot中,集成JPA需要通过配置类来实现。以下是一个示例:
```java
@Configuration
@EnableJpaRepositories(basePackages = {"com.example.demo.repository"}) //JPA仓库的扫描路径
@EnableTransactionManagement //开启事务管理
public class JpaConfig {
@Autowired
private DataSource dataSource;
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource);
em.setPackagesToScan("com.example.demo.entity"); //JPA实体类扫描路径
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
return em;
}
@Bean
public PlatformTransactionManager transactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
```
在配置类中,我们首先使用`@EnableJpaRepositories`注解指定JPA仓库的扫描路径,这样Spring容器就能够自动创建JpaRepository实现类的实例。
接着,使用`@EnableTransactionManagement`注解开启事务管理。
然后,我们定义了`entityManagerFactory`方法,用于创建`EntityManagerFactory`实例。在这个方法中,我们设置了数据源和JPA实体类的扫描路径,并使用`HibernateJpaVendorAdapter`作为JPA厂商适配器。
接下来,我们定义了`transactionManager`方法,用于创建`PlatformTransactionManager`实例,并将`EntityManagerFactory`实例设置为其属性。
最后,我们定义了`exceptionTranslation`方法,用于处理JPA产生的异常。