Example usage for org.springframework.orm.jpa.persistenceunit PersistenceUnitReader readPersistenceUnitInfos

List of usage examples for org.springframework.orm.jpa.persistenceunit PersistenceUnitReader readPersistenceUnitInfos

Introduction

In this page you can find the example usage for org.springframework.orm.jpa.persistenceunit PersistenceUnitReader readPersistenceUnitInfos.

Prototype

public SpringPersistenceUnitInfo[] readPersistenceUnitInfos(String[] persistenceXmlLocations) 

Source Link

Document

Parse and build all persistence unit infos defined in the given XML files.

Usage

From source file:org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.java

/**
 * Read all persistence unit infos from {@code persistence.xml},
 * as defined in the JPA specification./*from   w  w  w  .j av  a  2  s  .c om*/
 */
private List<SpringPersistenceUnitInfo> readPersistenceUnitInfos() {
    List<SpringPersistenceUnitInfo> infos = new LinkedList<>();
    String defaultName = this.defaultPersistenceUnitName;
    boolean buildDefaultUnit = (this.packagesToScan != null || this.mappingResources != null);
    boolean foundDefaultUnit = false;

    PersistenceUnitReader reader = new PersistenceUnitReader(this.resourcePatternResolver,
            this.dataSourceLookup);
    SpringPersistenceUnitInfo[] readInfos = reader.readPersistenceUnitInfos(this.persistenceXmlLocations);
    for (SpringPersistenceUnitInfo readInfo : readInfos) {
        infos.add(readInfo);
        if (defaultName != null && defaultName.equals(readInfo.getPersistenceUnitName())) {
            foundDefaultUnit = true;
        }
    }

    if (buildDefaultUnit) {
        if (foundDefaultUnit) {
            if (logger.isInfoEnabled()) {
                logger.info("Found explicit default unit with name '" + defaultName + "' in persistence.xml - "
                        + "overriding local default unit settings ('packagesToScan'/'mappingResources')");
            }
        } else {
            infos.add(buildDefaultPersistenceUnitInfo());
        }
    }
    return infos;
}