List of usage examples for org.springframework.data.jpa.repository.support JpaRepositoryFactory addRepositoryProxyPostProcessor
public void addRepositoryProxyPostProcessor(RepositoryProxyPostProcessor processor)
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)); } }