view src/main/java/de/mpiwg/indexmeta/services/PersistentService.java @ 7:bc57f2660b0f

implementation of web service
author Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
date Fri, 12 Apr 2013 17:48:42 +0200
parents
children
line wrap: on
line source

package de.mpiwg.indexmeta.services;

import java.util.List;

import javax.persistence.Query;

import de.mpiwg.indexmeta.bo.Contextualization;
import de.mpiwg.indexmeta.utils.QuadMap;

public class PersistentService {

	private QuadMap<Contextualization> ctxMap = null;
    private javax.persistence.EntityManagerFactory emf;
    private javax.persistence.EntityManager em;
    private String PERSISTENCE_UNIT_NAME = "uno";


	public QuadMap<Contextualization> getCtxMap() {
		if(ctxMap == null){
			this.loadCtxMap();
		}
		return ctxMap;
	}
	
	public void saveCtx(Contextualization ctx){
		System.out.println("Saving= " + ctx.toString());
		
		initEntityManager();
		em.getTransaction().begin();
		
		em.persist(ctx);
		ctxMap.put(ctx.getKey(), ctx);
		
		em.getTransaction().commit();
		closeEntityManager();
		
		System.out.println("Saved= " + ctx.toString());
	}
	
	
	private void loadCtxMap(){
		ctxMap = new QuadMap<Contextualization>();
		
		initEntityManager();
		em.getTransaction().begin();

		Query q = em.createQuery("from Contextualization");
		List<Contextualization> list =  q.getResultList();
				
		for(Contextualization ctx : list){
			ctxMap.put(ctx.getKey(), ctx);
		}
	        
		em.getTransaction().commit();
		closeEntityManager();
	}
	
	
    private void initEntityManager() {
        emf = javax.persistence.Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
        em = emf.createEntityManager();
    }

    private void closeEntityManager() {
        em.close();
        emf.close();
    }
	
	
	
}