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

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

Introduction

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

Prototype

public PersistenceUnitReader(ResourcePatternResolver resourcePatternResolver,
        DataSourceLookup dataSourceLookup) 

Source Link

Document

Create a new PersistenceUnitReader.

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. jav  a 2  s.  co  m*/
 */
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;
}