package com.impetus.travelportal.daoimpl;
import java.io.Serializable;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import com.impetus.travelportal.models.Passenger;
import com.impetus.travelportal.util.HibernateUtil;
public class CustomDao {
Session session = HibernateUtil.getSessionFactory().openSession();
@SuppressWarnings("unchecked")
public <E> E getUniqueResult(String hql, E obj, boolean commit) {
try {
if (!session.getTransaction().isActive()) {
session.beginTransaction();
} else {
session.getTransaction();
}
obj = (E) session.createQuery(hql).uniqueResult();
} catch (HibernateException e) {
session.getTransaction().rollback();
return null;
}
if (commit) {
session.getTransaction().commit();
}
return obj;
}
@SuppressWarnings("unchecked")
public <E> E getResultList(String hql, E objList, boolean commit) {
try {
if (!session.getTransaction().isActive()) {
session.beginTransaction();
} else {
session.getTransaction();
}
objList = (E) session.createQuery(hql).list();
} catch (HibernateException e) {
session.getTransaction().rollback();
return null;
}
if (commit) {
session.getTransaction().commit();
}
return objList;
}
public <E> E add(E object, boolean commit) {
if (!session.getTransaction().isActive()) {
session.beginTransaction();
}
try {
session.save(object);
if (commit) {
session.getTransaction().commit();
}
} catch (HibernateException e) {
session.getTransaction().rollback();
}
return object;
}
public <E> E delete(E obj, boolean commit) {
try {
if (!session.getTransaction().isActive()) {
session.beginTransaction();
}
session.delete(obj);
} catch (HibernateException e) {
session.getTransaction().rollback();
}
if (commit) {
session.getTransaction().commit();
}
return obj;
}
public <E> E update(E obj, boolean commit) {
try {
if (!session.getTransaction().isActive()) {
session.beginTransaction();
}
session.saveOrUpdate(obj);
if (commit) {
session.getTransaction().commit();
}
return obj;
} catch (HibernateException e) {
session.getTransaction().rollback();
return null;
}
}
@SuppressWarnings("unchecked")
public String updateQuery(String hql, boolean commit) {
try {
if (!session.getTransaction().isActive()) {
session.beginTransaction();
} else {
session.getTransaction();
}
session.createQuery(hql).executeUpdate();
} catch (HibernateException e) {
session.getTransaction().rollback();
return null;
}
if (commit) {
session.getTransaction().commit();
}
return "updated";
}
}