Example usage for org.springframework.orm.jpa LocalContainerEntityManagerFactoryBean setPersistenceUnitManager

List of usage examples for org.springframework.orm.jpa LocalContainerEntityManagerFactoryBean setPersistenceUnitManager

Introduction

In this page you can find the example usage for org.springframework.orm.jpa LocalContainerEntityManagerFactoryBean setPersistenceUnitManager.

Prototype

public void setPersistenceUnitManager(PersistenceUnitManager persistenceUnitManager) 

Source Link

Document

Set the PersistenceUnitManager to use for obtaining the JPA persistence unit that this FactoryBean is supposed to build an EntityManagerFactory for.

Usage

From source file:com.mycompany.projetsportmanager.spring.configuration.BaseConfiguration.java

/**
 * Builds the persistence unit manager./*from w w w .j  a va  2s.c  om*/
 * @param dataSource the datasource.
 * @return the persistence unit manager.
 */
@Bean
public LocalContainerEntityManagerFactoryBean myEmf() {
    LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
    localContainerEntityManagerFactoryBean.setDataSource(dataSource);
    localContainerEntityManagerFactoryBean.setPersistenceUnitManager(persistenceUnitManager());
    localContainerEntityManagerFactoryBean.setJpaVendorAdapter(jpaAdapter());
    //localContainerEntityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistenceProvider.class);
    localContainerEntityManagerFactoryBean.setPersistenceProvider(jpaAdapter().getPersistenceProvider());
    if (!generateDdl) {
        localContainerEntityManagerFactoryBean.getJpaPropertyMap().put(Environment.HBM2DDL_AUTO, "validate");
    }
    return localContainerEntityManagerFactoryBean;
}

From source file:fr.paris.lutece.portal.service.jpa.JPAStartupService.java

/**
 * Initialize JPA objects (Datasource, Persistence Unit Manager, Entity Manager Factory,
 * Transaction Manager) for each pool./*from  w  w w. j  a  v a2  s .  c  om*/
 */
public void process() {
    ReferenceList list = new ReferenceList();
    AppConnectionService.getPoolList(list);

    Map<String, EntityManagerFactory> mapFactories = new HashMap<String, EntityManagerFactory>();
    List<PlatformTransactionManager> listTransactionManagers = new ArrayList<PlatformTransactionManager>();
    _log.info("JPA Startup Service : Initializing JPA objects ...");

    String strDialectProperty = AppPropertiesService.getProperty(JPA_DIALECT_PROPERTY);

    for (ReferenceItem poolItem : list) {
        String strPoolname = poolItem.getCode();

        DataSource ds = AppConnectionService.getPoolManager().getDataSource(strPoolname);
        _log.info("JPA Startup Service : DataSource retrieved for pool : " + strPoolname);
        _log.debug("> DS : " + ds.toString());

        DefaultPersistenceUnitManager pum = new DefaultPersistenceUnitManager();
        pum.setDefaultDataSource(ds);

        PersistenceUnitPostProcessor[] postProcessors = { new JPAPersistenceUnitPostProcessor() };
        pum.setPersistenceUnitPostProcessors(postProcessors);

        pum.afterPropertiesSet();

        _log.info("JPA Startup Service : Persistence Unit Manager for pool : " + strPoolname);
        _log.debug("> PUM : " + pum.toString());

        LocalContainerEntityManagerFactoryBean lcemfb = new LocalContainerEntityManagerFactoryBean();
        lcemfb.setDataSource(ds);
        lcemfb.setPersistenceUnitManager(pum);
        lcemfb.setPersistenceUnitName("jpaLuteceUnit");

        JpaDialect jpaDialect = (JpaDialect) SpringContextService.getBean("jpaDialect");
        lcemfb.setJpaDialect(jpaDialect);

        Map mapJpaProperties = (Map) SpringContextService.getBean("jpaPropertiesMap");
        lcemfb.setJpaPropertyMap(mapJpaProperties);

        String strDialect = AppPropertiesService.getProperty(poolItem.getName() + ".dialect");

        // replace default dialect if <poolname>.dialect is specified
        if (StringUtils.isNotBlank(strDialect)) {
            mapJpaProperties.put(strDialectProperty, strDialect);
        }

        _log.debug("Using dialect " + mapJpaProperties.get(strDialectProperty) + " for pool "
                + poolItem.getName());

        JpaVendorAdapter jpaVendorAdapter = (JpaVendorAdapter) SpringContextService.getBean("jpaVendorAdapter");
        lcemfb.setJpaVendorAdapter(jpaVendorAdapter);

        lcemfb.afterPropertiesSet();

        EntityManagerFactory emf = lcemfb.getNativeEntityManagerFactory();
        _log.info("JPA Startup Service : EntityManagerFactory created for pool : " + strPoolname);
        _log.debug("> EMF : " + emf.toString());

        JpaTransactionManager tm = new JpaTransactionManager();
        tm.setEntityManagerFactory(emf);
        tm.setJpaDialect(jpaDialect);
        _log.debug("> JpaDialect " + jpaDialect);
        tm.afterPropertiesSet();
        _log.info("JPA Startup Service : JPA TransactionManager created for pool : " + strPoolname);
        _log.debug("> TM : " + tm.toString());

        mapFactories.put(strPoolname, emf);
        listTransactionManagers.add(tm);
    }

    EntityManagerService ems = (EntityManagerService) SpringContextService.getBean("entityManagerService");
    ems.setMapFactories(mapFactories);

    ChainedTransactionManager ctm = (ChainedTransactionManager) SpringContextService
            .getBean("transactionManager");
    ctm.setTransactionManagers(listTransactionManagers);
    _log.info("JPA Startup Service : completed successfully");
}

From source file:uk.nhs.cfh.dsp.srth.simulator.impl.DataGenerationEngineFactoryImpl.java

public void recreateDatabase() {
    try {/*  w w  w .j a  va  2  s . c  o  m*/
        //            Map<String, String> connectionMap = new HashMap<String, String>();
        //            connectionMap.put("hibernate.hbm2ddl.auto", "update");
        //            EntityManagerFactory emf = Persistence.createEntityManagerFactory("simulatorjpa", connectionMap);
        //            emf.close();
        logger.info("Starting purge of database...");
        persistenceUnitManager.obtainPersistenceUnitInfo("simulatorjpa");
        logger.info("persistenceUnitManager = " + persistenceUnitManager);
        LocalContainerEntityManagerFactoryBean lemf = new LocalContainerEntityManagerFactoryBean();
        lemf.setPersistenceUnitManager(persistenceUnitManager);
        logger.info("xmlLocation = " + xmlLocation);
        File f = new File(xmlLocation);
        logger.info("f.exists() = " + f.exists());
        logger.info("f.getAbsolutePath() = " + f.getAbsolutePath());
        logger.info("dataSource = " + dataSource);
        //            lemf.setPersistenceXmlLocation(xmlLocation);
        //            lemf.setDataSource(dataSource);
        logger.info("lemf.getPersistenceUnitName() = " + lemf.getPersistenceUnitName());
        lemf.getNativeEntityManagerFactory().close();
        logger.info("Finished recreating database.");
    } catch (ExceptionInInitializerError e) {
        logger.warn("Error recreating database. Nested exception is : " + e.fillInStackTrace());
    }
}