JpaSpringDataUtilConfiguration.java
package io.vanillabp.integration.utils.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.JpaContext;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import io.vanillabp.integration.utils.SpringDataUtil;
import io.vanillabp.integration.utils.impl.JpaSpringDataUtil;
@Configuration
@ConditionalOnMissingBean(SpringDataUtil.class) // only in case of application did not define it's own
@ConditionalOnClass(JpaRepository.class)
public class JpaSpringDataUtilConfiguration {
@Autowired
private ApplicationContext applicationContext;
@Autowired
private LocalContainerEntityManagerFactoryBean containerEntityManagerFactoryBean;
@Autowired
private JpaContext jpaContext;
@Bean
public SpringDataUtil jpaSpringDataUtil() {
return new JpaSpringDataUtil(
applicationContext, jpaContext, containerEntityManagerFactoryBean);
}
}