Java Code Examples for javax.persistence.EntityManagerFactory#close()

The following examples show how to use javax.persistence.EntityManagerFactory#close() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: EntityManagerContainerFactory.java    From o2oa with GNU Affero General Public License v3.0 6 votes vote down vote up
public static void close() throws Exception {
	try {
		if (instance != null) {
			for (EntityManagerFactory emf : instance.entityManagerFactoryMap.values()) {
				if (emf.isOpen()) {
					emf.close();
				}
			}
			instance.entityManagerFactoryMap.clear();
			instance.checkPersistFieldMap.clear();
			instance.checkRemoveFieldMap.clear();
		}
		/* 注销驱动程序 */
		Enumeration<Driver> drivers = DriverManager.getDrivers();
		while (drivers.hasMoreElements()) {
			Driver driver = drivers.nextElement();
			DriverManager.deregisterDriver(driver);
		}
		/* 由于可能重新载入 */
		instance = null;
	} catch (Exception e) {
		throw new Exception("close error.", e);
	}
}
 
Example 2
Source File: Migrate.java    From BotLibre with Eclipse Public License 1.0 6 votes vote down vote up
public void migrate3() {
	Map<String, String> properties = new HashMap<String, String>();
	properties.put(PersistenceUnitProperties.JDBC_PASSWORD, Site.DATABASEPASSWORD);
	properties.put(PersistenceUnitProperties.LOGGING_LEVEL, "fine");
	EntityManagerFactory factory = Persistence.createEntityManagerFactory("botlibre", properties);
	EntityManager em = factory.createEntityManager();
	em.getTransaction().begin();
	try {
		em.createNativeQuery("Update ChatChannel set creator_userid = (Select t2.admins_userid from CHAT_ADMINS t2 where t2.chatchannel_id = id)").executeUpdate();
		em.createNativeQuery("Update Forum set creator_userid = (Select t2.admins_userid from forum_ADMINS t2 where t2.forum_id = id)").executeUpdate();
		em.createNativeQuery("Update BotInstance set creator_userid = (Select t2.admins_userid from PANODRAINSTANCE_ADMINS t2 where t2.instances_id = id)").executeUpdate();
		em.getTransaction().commit();
	} catch (Exception exception) {
		exception.printStackTrace();
	} finally {
		if (em.getTransaction().isActive()) {
			em.getTransaction().rollback();
		}
		em.close();
		factory.close();
	}
}
 
Example 3
Source File: LongToNumericTypeTest.java    From high-performance-java-persistence with Apache License 2.0 6 votes vote down vote up
@Test
public void test() {
    PersistenceUnitInfoImpl persistenceUnitInfo = new PersistenceUnitInfoImpl(
            LongToNumericTypeTest.class.getName(),
            Collections.singletonList( Event.class.getName() ),
            validateProperties()
    );

    Map<String, Object> configuration = new HashMap<>();
    EntityManagerFactoryBuilderImpl entityManagerFactoryBuilder = new EntityManagerFactoryBuilderImpl(
            new PersistenceUnitInfoDescriptor( persistenceUnitInfo), configuration
    );
    EntityManagerFactory emf = null;
    try {
        emf = entityManagerFactoryBuilder.build();
    }
    finally {
        if ( emf != null ) {
            emf.close();
        }
    }
}
 
Example 4
Source File: JpaTest.java    From code with Apache License 2.0 6 votes vote down vote up
@Test
public void testJpa() {
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("myJpa");
    // 创建实体管理器
    EntityManager em = factory.createEntityManager();
    // 获取事务对象
    EntityTransaction tx = em.getTransaction();
    // 开启事务
    tx.begin();
    Customer customer = new Customer();
    customer.setCustName("阿里巴巴");
    // 保存操作
    em.persist(customer);
    // 提交事务
    tx.commit();
    // 释放资源
    em.close();
    factory.close();
}
 
Example 5
Source File: HibernateTest.java    From java-jdbc with Apache License 2.0 6 votes vote down vote up
@Test
public void jpa_with_parent_and_active_span_only() {
  final MockSpan parent = mockTracer.buildSpan("parent").start();
  try (Scope ignored = mockTracer.activateSpan(parent)) {
    EntityManagerFactory entityManagerFactory = Persistence
        .createEntityManagerFactory("jpa_active_span_only");

    EntityManager entityManager = entityManagerFactory.createEntityManager();

    entityManager.getTransaction().begin();
    entityManager.persist(new Employee());
    entityManager.persist(new Employee());
    entityManager.getTransaction().commit();
    entityManager.close();
    entityManagerFactory.close();
  }
  parent.finish();

  List<MockSpan> spans = mockTracer.finishedSpans();
  assertEquals(12, spans.size());
  checkSameTrace(spans);
  assertNull(mockTracer.activeSpan());
}
 
Example 6
Source File: EjbqlApp.java    From jasperreports with GNU Lesser General Public License v3.0 6 votes vote down vote up
/**
 *
 */
public void fill() throws JRException
{
	long start = System.currentTimeMillis();
	// create entity manager factory for connection with database
	EntityManagerFactory emf = Persistence.createEntityManagerFactory("pu1", new HashMap<Object, Object>());
	EntityManager em = emf.createEntityManager();

	try
	{
		Map<String, Object> parameters = getParameters(em);
		
		JasperFillManager.fillReportToFile("build/reports/JRMDbReport.jasper", parameters);

		em.close();
		
		System.err.println("Filling time : " + (System.currentTimeMillis() - start));
	}
	finally
	{
		if (em.isOpen())
			em.close();
		if (emf.isOpen())
			emf.close();
	}
}
 
Example 7
Source File: DomainConfFactory.java    From syncope with Apache License 2.0 5 votes vote down vote up
@Override
public void unregister(final String domain) {
    // domainKeymasterConfParamsJSON
    unregisterSingleton(domain + "KeymasterConfParamsJSON");
    unregisterBeanDefinition(domain + "KeymasterConfParamsJSON");

    // domainContentXML
    unregisterSingleton(domain + "ContentXML");
    unregisterBeanDefinition(domain + "ContentXML");

    // domainEntityManagerFactory
    try {
        EntityManagerFactory emf = ApplicationContextProvider.getBeanFactory().
                getBean(domain + "EntityManagerFactory", EntityManagerFactory.class);
        emf.close();
    } catch (Exception e) {
        LOG.error("Could not close EntityManagerFactory for Domain {}", domain, e);
    }
    unregisterSingleton(domain + "EntityManagerFactory");
    unregisterBeanDefinition(domain + "EntityManagerFactory");

    // domainTransactionManager
    unregisterSingleton(domain + "TransactionManager");
    unregisterBeanDefinition(domain + "TransactionManager");

    // domainDataSourceInitializer
    unregisterSingleton(domain.toLowerCase() + "DataSourceInitializer");

    // domainResourceDatabasePopulator
    unregisterSingleton(domain.toLowerCase() + "ResourceDatabasePopulator");

    // domainDataSource
    unregisterSingleton(domain + "DataSource");
    unregisterBeanDefinition(domain + "DataSource");
}
 
Example 8
Source File: PersistenceImpl.java    From cuba with Apache License 2.0 5 votes vote down vote up
/**
 * INTERNAL.
 * Destroys the persistence configuration. Further use of this bean instance is impossible.
 */
public void dispose() {
    jpaEmf.close();
    for (String store : Stores.getAdditional()) {
        EntityManagerFactory emf = beanLocator.get("entityManagerFactory_" + store);
        emf.close();
    }
}
 
Example 9
Source File: TestJPABootstrapping.java    From HibernateTips with MIT License 5 votes vote down vote up
@Test
public void bootstrapping() {
	log.info("... bootstrapping ...");

	EntityManagerFactory emf = Persistence.createEntityManagerFactory("my-persistence-unit");
	EntityManager em = emf.createEntityManager();
	em.getTransaction().begin();

	em.find(Book.class, 1L);

	em.getTransaction().commit();
	em.close();
	emf.close();
}
 
Example 10
Source File: RestoreData.java    From o2oa with GNU Affero General Public License v3.0 5 votes vote down vote up
@SuppressWarnings("unchecked")
public boolean execute() throws Exception {
	List<String> containerEntityNames = new ArrayList<>();
	containerEntityNames.addAll((List<String>) Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES));
	List<String> classNames = new ArrayList<>();
	classNames.addAll(this.catalog.keySet());
	classNames = ListTools.includesExcludesWildcard(classNames, Config.dumpRestoreData().getIncludes(),
			Config.dumpRestoreData().getExcludes());
	classNames = ListTools.includesExcludesWildcard(containerEntityNames, classNames, null);

	logger.print("find: {} data to restore, path: {}.", classNames.size(), this.dir.getAbsolutePath());
	File persistence = new File(Config.dir_local_temp_classes(), DateTools.compact(this.start) + "_dump.xml");
	PersistenceXmlHelper.write(persistence.getAbsolutePath(), classNames);
	long count = 0;
	for (int i = 0; i < classNames.size(); i++) {
		Class<JpaObject> cls = (Class<JpaObject>) Class.forName(classNames.get(i));
		EntityManagerFactory emf = OpenJPAPersistence.createEntityManagerFactory(cls.getName(),
				persistence.getName(), PersistenceXmlHelper.properties(cls.getName(), Config.slice().getEnable()));
		if (emf != null) {
			EntityManager em = emf.createEntityManager();
			em.setFlushMode(FlushModeType.COMMIT);
			try {
				logger.print("restore data({}/{}): {}, count: {}.", (i + 1), classNames.size(), cls.getName(),
						catalog.get(cls.getName()));
				count = count + this.store(cls, em);
			} finally {
				em.close();
				emf.close();
			}
		} else {
			logger.warn("can not create 'EntityManagerFactory' for Entity:[" + cls.getName() + "]");
		}
	}
	logger.print("restore data completed, total count: {}, elapsed: {} minutes.", count,
			(System.currentTimeMillis() - start.getTime()) / 1000 / 60);
	return true;
}
 
Example 11
Source File: Migrate.java    From BotLibre with Eclipse Public License 1.0 5 votes vote down vote up
public void migrate7() {
	Map<String, String> properties = new HashMap<String, String>();
	properties.put(PersistenceUnitProperties.JDBC_PASSWORD, Site.DATABASEPASSWORD);
	properties.put(PersistenceUnitProperties.LOGGING_LEVEL, "fine");
	EntityManagerFactory factory = Persistence.createEntityManagerFactory(Site.PERSISTENCE_UNIT, properties);
	EntityManager em = factory.createEntityManager();
	em.getTransaction().begin();
	try {
		em.createNativeQuery("Update ChatChannel set alias = name").executeUpdate();
		em.createNativeQuery("Update Forum set alias = name").executeUpdate();
		em.createNativeQuery("Update BotInstance set alias = name").executeUpdate();
		em.createNativeQuery("Update Graphic set alias = name").executeUpdate();
		em.createNativeQuery("Update Domain set alias = name").executeUpdate();
		em.createNativeQuery("Update IssueTracker set alias = name").executeUpdate();
		em.createNativeQuery("Update Analytic set alias = name").executeUpdate();
		em.createNativeQuery("Update Script set alias = name").executeUpdate();
		em.createNativeQuery("Update Avatar set alias = name").executeUpdate();
		em.getTransaction().commit();
	} catch (Exception exception) {
		exception.printStackTrace();
	} finally {
		if (em.getTransaction().isActive()) {
			em.getTransaction().rollback();
		}
		em.close();
		factory.close();
	}
}
 
Example 12
Source File: Migrate.java    From BotLibre with Eclipse Public License 1.0 4 votes vote down vote up
@SuppressWarnings("unchecked")
public void migrate2() {
	EntityManagerFactory sourceFactory = Persistence.createEntityManagerFactory("migration");
	Map<String, String> properties = new HashMap<String, String>();
	properties.put(PersistenceUnitProperties.JDBC_PASSWORD, Site.DATABASEPASSWORD);
	properties.put(PersistenceUnitProperties.DDL_GENERATION, PersistenceUnitProperties.DROP_AND_CREATE);
	properties.put(PersistenceUnitProperties.LOGGING_LEVEL, "fine");
	EntityManagerFactory targetFactory = Persistence.createEntityManagerFactory("botlibre", properties);
	EntityManager source = sourceFactory.createEntityManager();
	EntityManager target = targetFactory.createEntityManager();
	target.getTransaction().begin();
	try {
		Domain domain = new Domain(Site.DOMAIN);
		target.persist(domain);
		
		List<Tag> tags = source.createQuery("Select t from Tag t").getResultList();
		for (Tag tag : tags) {
			tag.setDomain(domain);
			target.persist(tag);
		}
		
		List<User> users = source.createQuery("Select t from User t").getResultList();
		for (User user : users) {
			if (user.getCreationDate() == null) {
				user.setCreationDate(new Date());
			}
			target.persist(user);
		}
		
		List<AvatarImage> avatars = source.createQuery("Select t from AvatarImage t").getResultList();
		for (AvatarImage avatar : avatars) {
			avatar.setDomain(domain);
			target.persist(avatar);
		}
		
		List<BotInstance> instances = source.createQuery("Select p from BotInstance p").getResultList();
		for (BotInstance instance : instances) {
			if (instance.getCreationDate() == null) {
				instance.setCreationDate(new Date());
			}
			instance.setDomain(domain);
			target.persist(instance);
		}
		
		target.getTransaction().commit();
		target.getTransaction().begin();
		Query query = target.createNativeQuery("Update Tag t set count = (Select count(p) from BotInstance p join PANODRAINSTANCE_TAGS pt on (pt.BotInstance_id = p.id) join Tag t2 on (pt.tags_id = t2.id) where p.domain_id = ? and t2.id = t.id) where t.domain_id = ?");
		query.setParameter(1, domain.getId());
		query.setParameter(2, domain.getId());
		query.executeUpdate();
		query = target.createQuery("Delete from Tag t where t.count = 0 and t.domain = :domain");
		query.setParameter("domain", domain);
		query.executeUpdate();
		target.getTransaction().commit();
		
	} catch (Exception exception) {
		exception.printStackTrace();
	} finally {
		if (target.getTransaction().isActive()) {
			target.getTransaction().rollback();
		}
		source.close();
		target.close();
		sourceFactory.close();
		targetFactory.close();
	}
}
 
Example 13
Source File: EntityManagerFactoryProducer.java    From HotswapAgentExamples with GNU General Public License v2.0 4 votes vote down vote up
public void destroy(@Disposes EntityManagerFactory factory) {
    factory.close();
}
 
Example 14
Source File: EntityManagerFactoryProducer.java    From HotswapAgent with GNU General Public License v2.0 4 votes vote down vote up
public void destroy(@Disposes EntityManagerFactory factory) {
    factory.close();
}
 
Example 15
Source File: IdCreationTest.java    From testing_security_development_enterprise_systems with GNU Lesser General Public License v3.0 4 votes vote down vote up
@Test
public void testIdPersistence(){

    EntityManagerFactory factory = Persistence.createEntityManagerFactory("DB");//same name as in persistence.xml
    EntityManager em = factory.createEntityManager();//it works as a cache/buffer until we commit a transaction

    User01 user01 = new User01();
    user01.setName("AName");
    user01.setSurname("ASurname");

    // by default, no id, until data committed to the database
    assertNull(user01.getId());

    //committing data to database needs to be inside a transaction
    EntityTransaction tx = em.getTransaction();
    tx.begin();

    try{
        /*
            The following is actually executing this SQL statement:

            insert into User01 (name, surname, id) values (?, ?, ?)

         */
        em.persist(user01);

        //there can be several operations on the "cache" EntityManager before we actually commit the transaction
        tx.commit();
    } catch (Exception e){
        //abort the transaction if there was any exception
        tx.rollback();
        fail();//fail the test
    } finally {
        //in any case, make sure to close the opened resources
        em.close();
        factory.close();
    }

    //id should have now be set
    assertNotNull(user01.getId());
    System.out.println("GENERATED ID: "+user01.getId());
}
 
Example 16
Source File: EntityManagerFactoryProducer.java    From hibernate-demos with Apache License 2.0 4 votes vote down vote up
public void close(@Disposes EntityManagerFactory entityManagerFactory) {
    entityManagerFactory.close();
}
 
Example 17
Source File: EntityManagerFactoryProducer.java    From HotswapAgentExamples with GNU General Public License v2.0 4 votes vote down vote up
public void destroy(@Disposes EntityManagerFactory factory) {
    factory.close();
}
 
Example 18
Source File: DatabaseMemory.java    From BotLibre with Eclipse Public License 1.0 4 votes vote down vote up
/**
 * Import the database into this instance.
 */
@SuppressWarnings("unchecked")
public void importMemory(String database) {
	try {
		Map<String, String> properties = new HashMap<String, String>();
		//properties.put(PersistenceUnitProperties.JDBC_DRIVER, DATABASE_DRIVER);
		properties.put(PersistenceUnitProperties.JDBC_URL, DATABASE_URL_PREFIX + database);
		//properties.put(PersistenceUnitProperties.JDBC_USER, DATABASE_USER);
		//properties.put(PersistenceUnitProperties.JDBC_PASSWORD, DATABASE_PASSWORD);
		Level debugLevel = this.bot.getDebugLevel();
		String logLevel = "INFO";
		if (debugLevel == Level.FINEST) {
			logLevel = "FINE";
		} else if (debugLevel == Level.FINE) {
			logLevel = "INFO";
		} else if (debugLevel == Level.SEVERE) {
			logLevel = "SEVER";
		} else if (debugLevel == Level.WARNING) {
			logLevel = "WARNING";
		} else if (debugLevel == Level.OFF) {
			logLevel = "OFF";
		}
		properties.put(PersistenceUnitProperties.LOGGING_LEVEL, logLevel);
		EntityManagerFactory importFactory = Persistence.createEntityManagerFactory("import", properties);
		EntityManager importEntityManager = importFactory.createEntityManager();
		Query query = importEntityManager.createQuery("Select v from Vertex v order by v.id");
		int start = 0;
		query.setFirstResult(start);
		query.setMaxResults(100);
		List<Vertex> vertices = query.getResultList();
		Map<Vertex, Vertex> identitySet = new IdentityHashMap<Vertex, Vertex>(vertices.size());
		while (!vertices.isEmpty()) {
			for (Vertex vertex : vertices) {
				getShortTermMemory().importMerge(vertex, identitySet);
			}
			save();
			start = start + 100;
			query.setFirstResult(start);
			query.setMaxResults(100);
			vertices = query.getResultList();
		}
		importFactory.close();
	} catch (RuntimeException failed) {
		this.bot.log(this, failed);
		throw failed;
	}
}
 
Example 19
Source File: DumpStorage.java    From o2oa with GNU Affero General Public License v3.0 4 votes vote down vote up
public boolean execute(String path) throws Exception {
	if (StringUtils.isEmpty(path)) {
		this.dir = new File(Config.base(), "local/dump/dumpStorage_" + DateTools.compact(this.start));
	} else {
		this.dir = new File(path);
		if (dir.getAbsolutePath().startsWith(Config.base())) {
			logger.print("path can not in base directory.");
			return false;
		}
	}
	FileUtils.forceMkdir(this.dir);
	FileUtils.cleanDirectory(this.dir);
	this.catalog = new DumpRestoreStorageCatalog();

	List<String> storageContainerEntityNames = new ArrayList<>();
	storageContainerEntityNames.addAll((List<String>) Config.resource(Config.RESOURCE_STORAGECONTAINERENTITYNAMES));
	List<String> classNames = ListTools.includesExcludesWildcard(storageContainerEntityNames,
			Config.dumpRestoreStorage().getIncludes(), Config.dumpRestoreStorage().getExcludes());
	logger.print("dump storage find {} data to dump, start at {}.", classNames.size(), DateTools.format(start));
	StorageMappings storageMappings = Config.storageMappings();
	File persistence = new File(Config.dir_local_temp_classes(), DateTools.compact(this.start) + "_dump.xml");
	PersistenceXmlHelper.write(persistence.getAbsolutePath(), classNames);
	for (int i = 0; i < classNames.size(); i++) {
		Class<StorageObject> cls = (Class<StorageObject>) Class.forName(classNames.get(i));
		EntityManagerFactory emf = OpenJPAPersistence.createEntityManagerFactory(cls.getName(),
				persistence.getName(), PersistenceXmlHelper.properties(cls.getName(), Config.slice().getEnable()));
		EntityManager em = emf.createEntityManager();
		try {
			logger.print("dump storage({}/{}): {}, estimate count: {}, estimate size: {}M.", (i + 1),
					classNames.size(), cls.getName(), this.estimateCount(em, cls),
					(this.estimateSize(em, cls) / 1024 / 1024));
			this.dump(cls, em, storageMappings);
		} finally {
			em.close();
			emf.close();
		}
	}
	FileUtils.write(new File(dir, "catalog.json"), XGsonBuilder.instance().toJson(this.catalog),
			DefaultCharset.charset);
	logger.print(
			"dump storage completed, directory: {}, count: {}, normal: {}, empty: {}, invalidStorage: {}, size: {}M, elapsed: {} minutes.",
			dir.getAbsolutePath(), this.count(), this.normal(), this.empty(), this.invalidStorage(),
			(this.size() / 1024 / 1024), (System.currentTimeMillis() - start.getTime()) / 1000 / 60);
	return true;
}
 
Example 20
Source File: SearchManager.java    From maven-framework-project with MIT License 4 votes vote down vote up
public static void main(String[] args) throws Exception{
		ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
		EntityManagerFactory entityManagerFactory = applicationContext.getBean("entityManagerFactory",EntityManagerFactory.class);
		FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManagerFactory.createEntityManager());
		
		//使用Hibernate Search api查询 从多个字段匹配 name、description、authors.name
//		QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Book.class ).get();
//		Query luceneQuery = qb.keyword().onFields("name","description","authors.name").matching("移动互联网").createQuery();
		
		//使用lucene api查询 从多个字段匹配 name、description、authors.name
		//使用庖丁分词器
		MultiFieldQueryParser queryParser=new MultiFieldQueryParser(Version.LUCENE_36, new String[]{"name","description","authors.name"}, new PaodingAnalyzer());
		Query luceneQuery=queryParser.parse("实战");
		
		FullTextQuery fullTextQuery =fullTextEntityManager.createFullTextQuery(luceneQuery, Book.class);
		//设置每页显示多少条
		fullTextQuery.setMaxResults(5);
		//设置当前页
		fullTextQuery.setFirstResult(0);
		
		//高亮设置
		SimpleHTMLFormatter formatter=new SimpleHTMLFormatter("<b><font color='red'>", "<font/></b>");
		QueryScorer queryScorer=new QueryScorer(luceneQuery);
		Highlighter highlighter=new Highlighter(formatter, queryScorer);

		@SuppressWarnings("unchecked")
		List<Book> resultList = fullTextQuery.getResultList();
		
		for (Book book : resultList) {
			String highlighterString=null;
			Analyzer analyzer=new PaodingAnalyzer();
			try {
				//高亮name
				highlighterString=highlighter.getBestFragment(analyzer, "name", book.getName());
				if(highlighterString!=null){
					book.setName(highlighterString);
				}
				//高亮authors.name
				Set<Author> authors = book.getAuthors();
				for (Author author : authors) {
					highlighterString=highlighter.getBestFragment(analyzer, "authors.name", author.getName());
					if(highlighterString!=null){
						author.setName(highlighterString);
					}
				}
				//高亮description
				highlighterString=highlighter.getBestFragment(analyzer, "description", book.getDescription());
				if(highlighterString!=null){
					book.setDescription(highlighterString);
				}
			} catch (Exception e) {
			}
			
		}
		
		fullTextEntityManager.close();
		entityManagerFactory.close();
		
	}