Example usage for org.springframework.data.jpa.repository.support JpaRepositoryFactory addRepositoryProxyPostProcessor

List of usage examples for org.springframework.data.jpa.repository.support JpaRepositoryFactory addRepositoryProxyPostProcessor

Introduction

In this page you can find the example usage for org.springframework.data.jpa.repository.support JpaRepositoryFactory addRepositoryProxyPostProcessor.

Prototype

public void addRepositoryProxyPostProcessor(RepositoryProxyPostProcessor processor) 

Source Link

Document

Adds RepositoryProxyPostProcessor s to the factory to allow manipulation of the ProxyFactory before the proxy gets created.

Usage

From source file:eu.supersede.fe.multitenant.MultiJpaProvider.java

@PostConstruct
private void load() {
    Map<String, DataSource> datasources = dataSourceBasedMultiTenantConnectionProviderImpl.getDataSources();

    repositoriesFactory = new HashMap<>();

    for (String n : datasources.keySet()) {
        try {/*  ww  w . ja va  2  s  .co  m*/
            log.info("Loading database: " + datasources.get(n).getConnection().getMetaData().getURL());
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Map<String, Object> hibernateProps = new LinkedHashMap<>();
        hibernateProps.putAll(jpaProperties.getHibernateProperties(datasources.get(n)));

        hibernateProps.put(Environment.DIALECT, "org.hibernate.dialect.PostgreSQLDialect");

        Set<String> packages = new HashSet<>();
        String[] tmp = MODELS_PACKAGES.split(",");

        for (String t : tmp) {
            packages.add(t.trim());
        }

        LocalContainerEntityManagerFactoryBean emfb = builder.dataSource(datasources.get(n))
                .packages(packages.toArray(new String[packages.size()])).properties(hibernateProps).jta(false)
                .build();

        emfb.afterPropertiesSet();
        EntityManagerFactory emf = emfb.getObject();
        EntityManager em = emf.createEntityManager();

        final JpaTransactionManager jpaTranMan = new JpaTransactionManager(emf);
        JpaRepositoryFactory jpaFactory = new JpaRepositoryFactory(em);
        jpaFactory.addRepositoryProxyPostProcessor(new MultiJpaRepositoryProxyPostProcessor(jpaTranMan));

        repositoriesFactory.put(n, new ContainerUtil(jpaFactory, emf, em));
    }
}