使用Hibernate 4和H2数据库获取EntityManager。
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.jpa.internal.EntityManagerFactoryImpl;
import org.hibernate.service.ServiceRegistry;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.spi.PersistenceUnitTransactionType;
public class Main {
public static void main(String[] args) {
Configuration configuration = getConfiguration();
StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
serviceRegistryBuilder.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
EntityManagerFactory factory = new EntityManagerFactoryImpl(
PersistenceUnitTransactionType.RESOURCE_LOCAL, true, null, configuration, serviceRegistry, null);
EntityManager em = factory.createEntityManager();
}
private static Configuration getConfiguration() {
Configuration configuration = new Configuration();
configuration.setProperty("hibernate.connection.driver_class", "org.h2.Driver");
configuration.setProperty("hibernate.connection.url", "jdbc:h2:~/test");
configuration.setProperty("hibernate.connection.pool_size", "1");
configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
configuration.setProperty("hibernate.cache.provider_class", "org.hibernate.cache.internal.NoCachingRegionFactory");
configuration.setProperty("hibernate.show_sql", "true");
configuration.setProperty("hibernate.hbm2ddl.auto", "create");
configuration.setProperty("hibernate.connection.autocommit", "false");
configuration.addAnnotatedClass(RegionEntity.class);
return configuration;
}
}
依赖项:
-
通用域名格式。h2数据库:h2:1.4.178
-
组织。hibernate:hibernate核心:4.3.5。最终的
-
组织。hibernate:hibernate entitymanager:4.3.5。最终的