org.hibernate.testing.junit5.EntityManagerFactoryBasedFunctionalTest Maven / Gradle / Ivy
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
*/
package org.hibernate.testing.junit5;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.function.Consumer;
import java.util.function.Function;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.SharedCacheMode;
import javax.persistence.ValidationMode;
import javax.persistence.spi.PersistenceUnitTransactionType;
import org.hibernate.bytecode.enhance.spi.EnhancementContext;
import org.hibernate.cfg.AvailableSettings;
import org.hibernate.cfg.Environment;
import org.hibernate.jpa.HibernatePersistenceProvider;
import org.hibernate.jpa.boot.spi.Bootstrap;
import org.hibernate.jpa.boot.spi.PersistenceUnitDescriptor;
import org.junit.jupiter.api.AfterEach;
import org.jboss.logging.Logger;
import static org.hibernate.testing.transaction.TransactionUtil.doInJPA;
/**
* @author Chris Cranford
*/
@FunctionalEntityManagerFactoryTesting
public class EntityManagerFactoryBasedFunctionalTest
extends BaseUnitTest
implements EntityManagerFactoryProducer, EntityManagerFactoryScopeContainer {
private static final Logger log = Logger.getLogger( EntityManagerFactoryBasedFunctionalTest.class );
private EntityManagerFactoryScope entityManagerFactoryScope;
@Override
public EntityManagerFactory produceEntityManagerFactory() {
final EntityManagerFactory entityManagerFactory = Bootstrap.getEntityManagerFactoryBuilder(
buildPersistenceUnitDescriptor(),
buildSettings()
).build();
entityManagerFactoryBuilt( entityManagerFactory );
return entityManagerFactory;
}
@Override
public void injectEntityManagerFactoryScope(EntityManagerFactoryScope scope) {
entityManagerFactoryScope = scope;
}
@Override
public EntityManagerFactoryProducer getEntityManagerFactoryProducer() {
return this;
}
protected EntityManagerFactoryScope entityManagerFactoryScope() {
return entityManagerFactoryScope;
}
protected EntityManagerFactory entityManagerFactory() {
return entityManagerFactoryScope.getEntityManagerFactory();
}
protected void entityManagerFactoryBuilt(EntityManagerFactory factory) {
}
protected boolean strictJpaCompliance() {
return false;
}
protected boolean exportSchema() {
return true;
}
protected static final String[] NO_MAPPINGS = new String[0];
protected String[] getMappings() {
return NO_MAPPINGS;
}
protected void addConfigOptions(Map options) {
}
protected static final Class>[] NO_CLASSES = new Class[0];
protected Class>[] getAnnotatedClasses() {
return NO_CLASSES;
}
protected Map © 2015 - 2025 Weber Informatics LLC | Privacy Policy