/** * Create and return an EntityManagerFactory for the named persistence unit using the given properties. * * @param persistenceUnitName The name of the persistence unit * @param properties Additional properties to use when creating the factory. The values of these properties override * any values that may have been configured elsewhere * * @return The factory that creates EntityManagers configured according to the specified persistence unit */ public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) { EntityManagerFactory emf = null; List<PersistenceProvider> providers = getProviders(); for ( PersistenceProvider provider : providers ) { emf = provider.createEntityManagerFactory( persistenceUnitName, properties ); if ( emf != null ) { break; } } if ( emf == null ) { throw new PersistenceException( "No Persistence provider for EntityManager named " + persistenceUnitName ); } return emf; }
@Override protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException { Assert.state(this.persistenceUnitInfo != null, "PersistenceUnitInfo not initialized"); PersistenceProvider provider = getPersistenceProvider(); if (provider == null) { String providerClassName = this.persistenceUnitInfo.getPersistenceProviderClassName(); if (providerClassName == null) { throw new IllegalArgumentException( "No PersistenceProvider specified in EntityManagerFactory configuration, " + "and chosen PersistenceUnitInfo does not specify a provider class name either"); } Class<?> providerClass = ClassUtils.resolveClassName(providerClassName, getBeanClassLoader()); provider = (PersistenceProvider) BeanUtils.instantiateClass(providerClass); } if (logger.isDebugEnabled()) { logger.debug("Building JPA container EntityManagerFactory for persistence unit '" + this.persistenceUnitInfo.getPersistenceUnitName() + "'"); } EntityManagerFactory emf = provider.createContainerEntityManagerFactory(this.persistenceUnitInfo, getJpaPropertyMap()); postProcessEntityManagerFactory(emf, this.persistenceUnitInfo); return emf; }
public boolean isLoaded(Object object) { List<PersistenceProvider> providers = Persistence.getProviders(); for ( PersistenceProvider provider : providers ) { final LoadState state = provider.getProviderUtil().isLoaded( object ); if ( state == LoadState.UNKNOWN ) continue; return state == LoadState.LOADED; } return true; } };
/** * Create and return an EntityManagerFactory for the named persistence unit * using the given properties. * * @param persistenceUnitName * the name of the persistence unit * @param properties * Additional properties to use when creating the factory. * These properties may include properties to control * schema generation. The values of these properties override * any values that may have been configured elsewhere. * @return the factory that creates EntityManagers configured according to * the specified persistence unit. */ public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) { EntityManagerFactory emf = null; PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver(); List<PersistenceProvider> providers = resolver.getPersistenceProviders(); for (PersistenceProvider provider : providers) { emf = provider.createEntityManagerFactory(persistenceUnitName, properties); if (emf != null) { break; } } if (emf == null) { throw new PersistenceException("No Persistence provider for EntityManager named " + persistenceUnitName); } return emf; }
PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver(); List<PersistenceProvider> providers = resolver.getPersistenceProviders(); if (provider.generateSchema(persistenceUnitName, map)) { return; throw new PersistenceException("No Persistence provider to generate schema named " + persistenceUnitName);
private EntityManagerFactory createEntityManagerFactory(InternalPersistenceUnitInfo info) { EntityManagerFactory fac = null; List<PersistenceProvider> persistenceProviders = PersistenceProviderResolverHolder .getPersistenceProviderResolver().getPersistenceProviders(); for (PersistenceProvider persistenceProvider : persistenceProviders) { info.setPersistenceProviderClassName(persistenceProvider.getClass().getName()); fac = persistenceProvider.createContainerEntityManagerFactory(info, null); if (fac != null) { break; } } if (fac == null) { throw new PersistenceException( "No Persistence provider for persistence unit " + info.getPersistenceUnitName()); } return fac; } }
/** * Create database schemas and/or tables and/or create DDL scripts as determined by the supplied properties * * Called when schema generation is to occur as a separate phase from creation of the entity manager factory. * * @param persistenceUnitName the name of the persistence unit * @param properties properties for schema generation; these may also contain provider-specific properties. The * values of these properties override any values that may have been configured elsewhere. * * @throws PersistenceException if insufficient or inconsistent configuration information is provided or if schema * generation otherwise fails. */ public static void generateSchema(String persistenceUnitName, Map properties) { List<PersistenceProvider> providers = getProviders(); for ( PersistenceProvider provider : providers ) { final boolean generated = provider.generateSchema( persistenceUnitName, properties ); if ( generated ) { return; } } throw new PersistenceException( "No persistence provider found for schema generation for persistence-unit named " + persistenceUnitName ); }
public boolean isLoaded(Object entity) { PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver(); List<PersistenceProvider> providers = resolver.getPersistenceProviders(); for (PersistenceProvider provider : providers) { LoadState loadstate = provider.getProviderUtil().isLoaded(entity); if(loadstate == LoadState.LOADED) { return true; } else if (loadstate == LoadState.NOT_LOADED) { return false; } // else continue } //None of the providers could determine the load state return true; } }
public boolean isLoaded(Object entity, String attributeName) { PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver(); List<PersistenceProvider> providers = resolver.getPersistenceProviders(); for (PersistenceProvider provider : providers) { LoadState loadstate = provider.getProviderUtil().isLoadedWithoutReference(entity, attributeName); if(loadstate == LoadState.LOADED) { return true; } else if (loadstate == LoadState.NOT_LOADED) { return false; } // else continue } //None of the providers could determine the load state try isLoadedWithReference for (PersistenceProvider provider : providers) { LoadState loadstate = provider.getProviderUtil().isLoadedWithReference(entity, attributeName); if(loadstate == LoadState.LOADED) { return true; } else if (loadstate == LoadState.NOT_LOADED) { return false; } // else continue } //None of the providers could determine the load state. return true; }
/** * Initialize the EntityManagerFactory for the given configuration. * @throws javax.persistence.PersistenceException in case of JPA initialization errors */ @Override protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException { if (logger.isDebugEnabled()) { logger.debug("Building JPA EntityManagerFactory for persistence unit '" + getPersistenceUnitName() + "'"); } PersistenceProvider provider = getPersistenceProvider(); if (provider != null) { // Create EntityManagerFactory directly through PersistenceProvider. EntityManagerFactory emf = provider.createEntityManagerFactory(getPersistenceUnitName(), getJpaPropertyMap()); if (emf == null) { throw new IllegalStateException( "PersistenceProvider [" + provider + "] did not return an EntityManagerFactory for name '" + getPersistenceUnitName() + "'"); } return emf; } else { // Let JPA perform its standard PersistenceProvider autodetection. return Persistence.createEntityManagerFactory(getPersistenceUnitName(), getJpaPropertyMap()); } }
List<PersistenceProvider> persistenceProviders = PersistenceProviderResolverHolder.getPersistenceProviderResolver().getPersistenceProviders(); PersistenceProvider selectedProvider = null; if (persistenceProviders != null) { return selectedProvider.createContainerEntityManagerFactory(info, properties); } catch (Exception e) { throw new RuntimeException("Unable to create EntityManagerFactory due to " + e.getMessage(), e);
public boolean isLoaded(Object entity, String attributeName) { List<PersistenceProvider> providers = Persistence.getProviders(); for ( PersistenceProvider provider : providers ) { final LoadState state = provider.getProviderUtil().isLoadedWithoutReference( entity, attributeName ); if ( state == LoadState.UNKNOWN ) continue; return state == LoadState.LOADED; } for ( PersistenceProvider provider : providers ) { final LoadState state = provider.getProviderUtil().isLoadedWithReference( entity, attributeName ); if ( state == LoadState.UNKNOWN ) continue; return state == LoadState.LOADED; } return true; }
public LoadState isLoadedWithReference(Object entity, String attributeName) { Collection<PersistenceProvider> providers = lookupProviders(); for (PersistenceProvider provider : providers) { LoadState loadstate = provider.getProviderUtil().isLoadedWithReference(entity, attributeName); if (loadstate != LoadState.UNKNOWN) { return loadstate; } // else keep looking } // None of the providers knew, so the load state is unknown return LoadState.UNKNOWN; }
public LoadState isLoadedWithoutReference(Object entity, String attributeName) { Collection<PersistenceProvider> providers = lookupProviders(); for (PersistenceProvider provider : providers) { LoadState loadstate = provider.getProviderUtil().isLoadedWithoutReference(entity, attributeName); if (loadstate != LoadState.UNKNOWN) { return loadstate; } // else keep looking } // None of the providers knew, so the load state is unknown return LoadState.UNKNOWN; }
/** {@inheritDoc} */ @Override public ProviderUtil getProviderUtil() { // we suppose it is loaded later than createXXXEMF so we'll get the delegate if (delegate == null) { // delegate not yet loaded and perhaps will never be: // this method may be called, even without jpa impl to delegate, // for example, by hibernate validator via jpa api but without jpa impl // (issue 396, if loadOrGuessDelegate(null) was called here), // so return a dumb ProviderUtil in this case or if delegate not yet loaded return DUMMY_PROVIDER_UTIL; } return delegate.getProviderUtil(); }
/** {@inheritDoc} */ @SuppressWarnings("rawtypes") @Override public boolean generateSchema(final String persistenceUnitName, final Map map) { final PersistenceProvider persistenceProvider = findDelegate(map); return persistenceProvider.generateSchema(persistenceUnitName, map); } }
/** * Create and return an EntityManagerFactory for the named persistence unit using the given properties. * * @param persistenceUnitName * the name of the persistence unit * @param properties * Additional properties to use when creating the factory. The values of these properties override any values that may have * been configured elsewhere. * @return the factory that creates EntityManagers configured according to the specified persistence unit. */ public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map<String, Object> properties) { EntityManagerFactory emf = null; final PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver(); final List<PersistenceProvider> providers = resolver.getPersistenceProviders(); for (final PersistenceProvider provider : providers) { emf = provider.createEntityManagerFactory(persistenceUnitName, properties); if (emf != null) { break; } } if (emf == null) { throw new PersistenceException("No Persistence provider for EntityManager named " + persistenceUnitName); } return emf; }
PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver(); List<PersistenceProvider> providers = resolver.getPersistenceProviders(); if (provider.generateSchema(persistenceUnitName, map)) { return; throw new PersistenceException("No Persistence provider to generate schema named " + persistenceUnitName);
public static void generateSchema(String persistenceUnitName, Map properties) { final List<PersistenceProvider> providers = getProviders(); for (final PersistenceProvider provider : providers) { if (provider.generateSchema( persistenceUnitName, properties)) { return; } } throw new PersistenceException("No provider for schema generation of unit '" + persistenceUnitName + "'"); }
public boolean isLoaded(Object entity) { PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver(); List<PersistenceProvider> providers = resolver.getPersistenceProviders(); for (PersistenceProvider provider : providers) { LoadState loadstate = provider.getProviderUtil().isLoaded(entity); if(loadstate == LoadState.LOADED) { return true; } else if (loadstate == LoadState.NOT_LOADED) { return false; } // else continue } //None of the providers could determine the load state return true; } }