/*
* Copyright 2014 - LAit SpA
*				 Realizzato da Icona Management srl su commessa LAit SpA
* Copyright 2015- LAit SpA
*                                                  Aggiornato da LAit SpA
*
* Concesso in licenza a norma dell'EUPL, versione 1.1 o
* successive dell'EUPL (la "Licenza")– non appena saranno
* approvate dalla Commissione europea;
* Non è possibile utilizzare l'opera salvo nel rispetto della Licenza.
* È possibile ottenere una copia della Licenza al seguente indirizzo:
*
* http://ec.europa.eu/idabc/eupl
*
* Salvo diversamente indicato dalla legge applicabile o
* concordato per iscritto, il software distribuito secondo
* i termini della Licenza è distribuito "TAL QUALE",
* SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO,
* esplicite o implicite.
* Si veda la Licenza per la lingua specifica che disciplina
* le autorizzazioni e le limitazioni secondo i termini della
* Licenza.
*/
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package it.laitspa.cpf.model;

import org.apache.log4j.Logger;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 * @author Dario
 *
 */
public abstract class DAO
{
  protected transient Logger  logger;
  protected Session session;
  protected Transaction transaction;

  public DAO(Session session)
  {
    logger = Logger.getLogger(this.getClass());
    this.session = session;
    this.transaction = this.session.beginTransaction();
  }

  protected void endTransaction()
    {
     this.transaction.commit();
  }
  
  public Object getItemByDescrizione(String lut, String column, Object filter)
  {
    String hql = "from " + lut + " where " + column + " = :descrizione";

    Query q = session.createQuery(hql);
    q.setParameter("descrizione", filter);

    Object result = (Object)q.uniqueResult();
    return result;
  } 
}
