/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.common.query.jpa;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import com.ewcms.common.query.cache.ResultCacheable;
public class QueryFactory {
private EntityManagerFactory entityManagerFactory;
private ResultCacheable cache;
private EntityManager createEntityManager(){
return entityManagerFactory.createEntityManager();
}
public EntityQueryable createEntityQuery(Class<?> entityClass){
return new EntityQuery(createEntityManager(),entityClass)
.setCache(cache);
}
public EntityQueryable createEntityQuery(Class<?> entityClass,
SelectCallback extSelectCallback){
return new EntityQuery(createEntityManager(),entityClass,extSelectCallback)
.setCache(cache);
}
public EntityQueryable createEntityQuery(Class<?> entityClass,
SelectCallback countSelectCallback,SelectCallback extSelectCallback){
return new EntityQuery(createEntityManager(),entityClass,countSelectCallback,extSelectCallback)
.setCache(cache);
}
public HqlQueryable createHqlQuery(String hql,String countHql) {
return new HqlQuery(createEntityManager(),hql,countHql)
.setCache(cache);
}
public HqlQueryable createHqlQuery(String hql,String countHql,String extHql) {
return new HqlQuery(createEntityManager(),hql,countHql,extHql)
.setCache(cache);
}
public void setEntityManagerFactory(EntityManagerFactory factory){
this.entityManagerFactory = factory;
}
public void setCache(ResultCacheable cache){
this.cache = cache;
}
}