same-named unit from persistence.xml overrides in case of conflict with default unit
Issue: SPR-9741
This commit is contained in:
parent
10a4e88e0a
commit
f32e4077fa
|
@ -21,7 +21,6 @@ import java.lang.reflect.InvocationHandler;
|
|||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Proxy;
|
||||
import java.net.URL;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
|
@ -375,10 +374,18 @@ public class DefaultPersistenceUnitManager
|
|||
* as defined in the JPA specification.
|
||||
*/
|
||||
private List<SpringPersistenceUnitInfo> readPersistenceUnitInfos() {
|
||||
PersistenceUnitReader reader = new PersistenceUnitReader(this.resourcePatternResolver, this.dataSourceLookup);
|
||||
List<SpringPersistenceUnitInfo> infos = new LinkedList<SpringPersistenceUnitInfo>();
|
||||
infos.addAll(Arrays.asList(reader.readPersistenceUnitInfos(this.persistenceXmlLocations)));
|
||||
if (this.packagesToScan != null || this.mappingResources != null) {
|
||||
boolean buildDefaultUnit = (this.packagesToScan != null || this.mappingResources != null);
|
||||
PersistenceUnitReader reader = new PersistenceUnitReader(this.resourcePatternResolver, this.dataSourceLookup);
|
||||
SpringPersistenceUnitInfo[] readInfos = reader.readPersistenceUnitInfos(this.persistenceXmlLocations);
|
||||
for (SpringPersistenceUnitInfo readInfo : readInfos) {
|
||||
infos.add(readInfo);
|
||||
if (this.defaultPersistenceUnitName != null &&
|
||||
this.defaultPersistenceUnitName.equals(readInfo.getPersistenceUnitName())) {
|
||||
buildDefaultUnit = false;
|
||||
}
|
||||
}
|
||||
if (buildDefaultUnit) {
|
||||
infos.add(buildDefaultPersistenceUnitInfo());
|
||||
}
|
||||
return infos;
|
||||
|
|
Loading…
Reference in New Issue