lk.bhanuka.biometric.DAO.DatabaseService.java Source code

Java tutorial

Introduction

Here is the source code for lk.bhanuka.biometric.DAO.DatabaseService.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lk.bhanuka.biometric.DAO;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import lk.bhanuka.biometric.util.HibernateUtil;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author bhanuka
 */
public class DatabaseService {

    private static Session getSession() {
        return HibernateUtil.getSessionFactory().openSession();
    }

    public static List executeHQL(String hql) {
        Session session = DatabaseService.getSession();
        session.beginTransaction();
        Query q;
        q = session.createQuery(hql);
        return q.list();
    }

    public static void save(Object o) {
        Session session = DatabaseService.getSession();
        session.beginTransaction();
        session.save(o);
        session.getTransaction().commit();
    }

    public static Object load(Class type, Serializable s) {
        return DatabaseService.getSession().load(type, s);
    }

    public static List search(Class type, Map restrictions) {
        Session session = DatabaseService.getSession();
        Criteria criteria = session.createCriteria(type);
        for (Object o : restrictions.keySet()) {
            criteria.add(Restrictions.eq((String) o, restrictions.get(o)));
        }
        return criteria.list();
    }

    public static List search(Class type, Map restrictions, Float margin) {
        Session session = DatabaseService.getSession();
        Criteria criteria = session.createCriteria(type);
        for (Object o : restrictions.keySet()) {
            criteria.add(Restrictions.between((String) o,
                    (Float) restrictions.get(o) - (Float) restrictions.get(o) * margin,
                    (Float) restrictions.get(o) + (Float) restrictions.get(o) * margin));
        }
        return criteria.list();
    }
}