Package it.eng.spagobi

Source Code of it.eng.spagobi.TestJPA

package it.eng.spagobi;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

import org.eclipse.persistence.internal.jpa.EJBQueryImpl;

public class TestJPA {

  private static EntityManagerFactory emf;
 
  private EntityManagerFactory createEMF() {
    try {
     
      EntityManagerFactory emf = Persistence.createEntityManagerFactory("foodmart");

      return emf;

    } catch (RuntimeException e) {
      e.printStackTrace();
      return null;
    }
  }
  protected final EntityManagerFactory getEMF() {
    if (emf == null) {
      emf = createEMF();
    }

    return emf;
 
 

  /**
   * @param args
   */
  public static void main(String[] args) {
   
    TestJPA t= new TestJPA();
    t.createEMF();
    EntityManager em = t.getEMF().createEntityManager();
    String query = " SELECT t_0.storeCost, t_0.storeId.storeCountry FROM  SalesFact1998 t_0 WHERE t_0.storeId.storeCountry='USA' AND  t_0.promotionId=t_0.promotionId";
    Query q  = em.createQuery(query);
   
   
    List<String> queryParameters = new ArrayList<String>();
    queryParameters.add("USA");
    EJBQueryImpl qi = (EJBQueryImpl)q;
    String sqlQueryString = qi.getDatabaseQuery().getSQLString();
    System.out.println(sqlQueryString);
    EJBQueryImpl countQuery = (EJBQueryImpl)em.createNativeQuery("SELECT COUNT(*) FROM (" + sqlQueryString + ") temp");
    for(int i=0; i<queryParameters.size(); i++ ){
      countQuery.setParameter(1+i, queryParameters.get(i));
    }
    System.out.println("result "+countQuery.getDatabaseQuery().getSQLString());


    System.out.println(((Long)countQuery.getResultList().get(0)).intValue());

  }

}
TOP

Related Classes of it.eng.spagobi.TestJPA

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.