Package com.insacosa.presentation.impl

Source Code of com.insacosa.presentation.impl.JpaCaracteristiquesFinder

package com.insacosa.presentation.impl;

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

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Path;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

import query.annotations.Finder;

import com.google.appengine.api.datastore.Key;
import com.insacosa.Inmobles.domain.Caracteristiques;
import com.insacosa.Inmobles.domain.Caractinmobles;
import com.insacosa.Inmobles.domain.Tipus;
import com.insacosa.presentation.CaracteristiquesFinder;


/**
* @author Pere Santasusana
*/
@Finder
public class JpaCaracteristiquesFinder implements CaracteristiquesFinder {

    @PersistenceContext
    private EntityManager entityManager;
   
   
  
    public List<Caracteristiques> caractTipus(Tipus tipus, Integer condicio, Boolean inclouCaractComu) {
   
    List<Caracteristiques> ret = new ArrayList<Caracteristiques>();
       
    CriteriaBuilder cb = entityManager.getCriteriaBuilder();
    CriteriaQuery<Caracteristiques> q = cb.createQuery(Caracteristiques.class);
    Root<Caracteristiques> root = q.from(Caracteristiques.class);
       
    try {
     
      if (inclouCaractComu)
      {
        //Tipus tipus99 = new Tipus();
        //tipus99.setId(KeyFactory.stringToKey("99"));
       
        //Path<Tipus> path = root.get("Tipus");
        Path<Integer> path2 = root.get("control");
 
          //Predicate p1 = cb.equal(path,  tipus);
          //Predicate p2 = cb.equal(path,  tipus99);
           
        //Predicate p3 = cb.or(p1,p2);
        //Predicate p4 = cb.equal(path2,control);
         
        //cb.and(p3, p4);
       
                
      }
      else
      {
       
        //Path<Tipus> path = root.get("tipus");
        Path<Integer> path2 = root.get("control");
 
          //Predicate p1 = cb.equal(path,  tipus);
          //Predicate p2 = cb.equal(path2,control);
         
        //cb.and(p1, p2);
       
      }
           
      TypedQuery<Caracteristiques> query2 = entityManager.createQuery(q);
      ret = query2.getResultList();
     
    }
    finally {
        //em.close();
    }
 
    return ret;

    //return null;
  }

   
    public Caracteristiques caracteristicaCaractInmoble(Caractinmobles caractinmoble) {
   
    Caracteristiques c = null;
   
    try {         
        c = entityManager.find(Caracteristiques.class, caractinmoble.getKey());
        
    } catch (RuntimeException e) {
        throw e; // or display error message
    }
    finally {
        //em.close();
    }
   
    return c;
  }
  
   
    /*
   * Retorna el tipus de COLUMNA (VCHR,INT,DBL,DATE,,..) d'una caracteristica en concret
   * Exemple : metres --> integer, adreça --> string, preu --> double , ...
   */
 
   
  public String tipusColumnaCaract(Key keyCaract) {
   
    String ret = null;
   
    EntityTransaction tx = entityManager.getTransaction();
    tx.begin();
     
    try {
      try {

        /*
        Criteria criteria = session.createCriteria(Caracteristiques.class)
        .add(Restrictions.eq("id",keyCaract))
        .setProjection(Projections.distinct(Projections.property("ttpbasic.ktpbasic")));
       
        Object r = criteria.uniqueResult();
       
        if (r !=null)
          ret = r.toString();
  */
        tx.commit();   
        
        }          
      catch (Exception e) {
        tx.rollback();
        }
      }
    finally {
      //em.close();
      }
   
    return ret;

  }



  public String tipusColumnaCaract(String nomCaract) {
     
    String ret = null;
   
    EntityTransaction tx = entityManager.getTransaction();
    tx.begin();
     
    try {     
      try {
     
        /*
        Criteria criteria = session.createCriteria(Caracteristiques.class)
        .add(Restrictions.eq("nom",nomCaract))
        .setProjection(Projections.distinct(Projections.property("ttpbasic.ktpbasic")));
       
        Object r = criteria.uniqueResult();
       
        if (r !=null)
          ret = r.toString();
  */
        tx.commit();   
        
        }          
      catch (Exception e) {
        tx.rollback();
        }
      }
    finally {
      //em.close();
      }
   
    return ret;

  }

 

  /*
   * Retorna el tipus de CONTROL UI (ITXT,SELT,IRAD,FILE,,..) d'una caracteristica en concret
   * Exemple : metres --> ITXT, provincia --> SELT , ...
   */
   
  public String tipusControlUICaract(Key keyCaract) {
   
    String ret = null;
     
    try {
           
        /*
        Criteria criteria = session.createCriteria(Caracteristiques.class)
        .add(Restrictions.eq("id",keyCaract))
        .setProjection(Projections.distinct(Projections.property("ttpcontrol.ktpcontrol")));
       
        ret = criteria.uniqueResult().toString();
  */
       
        CriteriaBuilder cb = entityManager.getCriteriaBuilder();
        CriteriaQuery<Caracteristiques> crit = cb.createQuery(Caracteristiques.class);
       
        Root<Caracteristiques> candidateRoot = crit.from(Caracteristiques.class);
       
        Path<Tipus> nameField = candidateRoot.get("id");
        Predicate nameEquals = cb.equal(nameField, keyCaract);
        crit.where(nameEquals);
         
        TypedQuery<Caracteristiques> q = entityManager.createQuery(crit);
       
        TypedQuery<String> q2 = entityManager.createQuery("SELECT c.ttpcontrol.tipus FROM Caracteristiques AS c", String.class);
       
        List<String> ret2 = q2.getResultList();
        ret = q.getSingleResult().getTtpcontrol().getTipus();

     
      }
    finally {
      //em.close();
      }
   
    return ret;

  }

   
  public String tipusControlUICaract(String nomCaract) {
   
    String ret = null;
   
    EntityTransaction tx = entityManager.getTransaction();
    tx.begin();
     
    try {
      try {

        /*
        Criteria criteria = session.createCriteria(Caracteristiques.class)
        .add(Restrictions.eq("nom",nomCaract))
        .setProjection(Projections.distinct(Projections.property("ttpcontrol.ktpcontrol")));
       
        ret = criteria.uniqueResult().toString();
  */
        tx.commit();   
        }          
      catch (Exception e) {
          tx.rollback();
        }
      }
    finally {
      //em.close();
      }
   
    return ret;

  }


   
  public Caracteristiques caractPerKey(String keyCaract) {
   
    Caracteristiques caracteristica = null;

    EntityTransaction tx = entityManager.getTransaction();
    tx.begin();
   
    try {    
        caracteristica = entityManager.find( Caracteristiques.class, keyCaract);
       
        tx.commit();   
    } finally {       
      //em.close();   
    }
    return caracteristica;

  }

 
  
  public List<Caracteristiques> allCaract() {
   
    List<Caracteristiques> ret = new ArrayList<Caracteristiques>();

    EntityTransaction tx = entityManager.getTransaction();
    tx.begin();
   
    try {     

     
      Query q = entityManager.createQuery("SELECT c FROM " + Caracteristiques.class.getName());
     
     
      ret = (List<Caracteristiques>)q.getResultList();
     
         
    } catch (RuntimeException e) {
        if ( tx != null && tx.isActive() ) tx.rollback();
        throw e; // or display error message
    }
    finally {
        //em.close();
    }
   
    return ret;

  }

 
  public List<Caracteristiques> caractTipus(Tipus tipus) {
    // TODO Auto-generated method stub
    return null;
  }

   
}
TOP

Related Classes of com.insacosa.presentation.impl.JpaCaracteristiquesFinder

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.