DATAJPA-993 - Improved example of infrastructure setup in reference documentation.
Previously EntityManagerFactory was created manually which resulted in LocalContainerEntityManagerFactoryBean not being exposed to ApplicationContext. The latter is an important bean since it enables exception translation. Original pull request: #180.
This commit is contained in:
committed by
Oliver Gierke
parent
f2453dedd8
commit
a20f970a39
@@ -65,7 +65,7 @@ class ApplicationConfig {
|
||||
}
|
||||
|
||||
@Bean
|
||||
public EntityManagerFactory entityManagerFactory() {
|
||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
|
||||
|
||||
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
|
||||
vendorAdapter.setGenerateDdl(true);
|
||||
@@ -74,9 +74,7 @@ class ApplicationConfig {
|
||||
factory.setJpaVendorAdapter(vendorAdapter);
|
||||
factory.setPackagesToScan("com.acme.domain");
|
||||
factory.setDataSource(dataSource());
|
||||
factory.afterPropertiesSet();
|
||||
|
||||
return factory.getObject();
|
||||
return factory;
|
||||
}
|
||||
|
||||
@Bean
|
||||
@@ -89,6 +87,7 @@ class ApplicationConfig {
|
||||
}
|
||||
----
|
||||
====
|
||||
NB: It's important to create `LocalContainerEntityManagerFactoryBean` and not `EntityManagerFactory` directly since the former also participates in exception translation mechanisms besides simply creating `EntityManagerFactory`.
|
||||
|
||||
The just shown configuration class sets up an embedded HSQL database using the `EmbeddedDatabaseBuilder` API of spring-jdbc. We then set up a `EntityManagerFactory` and use Hibernate as sample persistence provider. The last infrastructure component declared here is the `JpaTransactionManager`. We finally activate Spring Data JPA repositories using the `@EnableJpaRepositories` annotation which essentially carries the same attributes as the XML namespace does. If no base package is configured it will use the one the configuration class resides in.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user