package org.akaza.openclinica.dao.hibernate;
import org.akaza.openclinica.domain.technicaladmin.DatabaseChangeLogBean;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import java.util.ArrayList;
public class DatabaseChangeLogDao {
private SessionFactory sessionFactory;
public String getDomainClassName() {
return domainClass().getName();
}
public Class<DatabaseChangeLogBean> domainClass() {
return DatabaseChangeLogBean.class;
}
@SuppressWarnings("unchecked")
public ArrayList<DatabaseChangeLogBean> findAll() {
String query = "from " + getDomainClassName() + " dcl order by dcl.id desc ";
org.hibernate.Query q = getCurrentSession().createQuery(query);
return (ArrayList<DatabaseChangeLogBean>) q.list();
}
public DatabaseChangeLogBean findById(String id, String author, String fileName) {
String query = "from " + getDomainClassName() + " do where do.id = :id and do.author = :author and do.fileName = :fileName ";
org.hibernate.Query q = getCurrentSession().createQuery(query);
q.setString("id", id);
q.setString("author", author);
q.setString("fileName", fileName);
return (DatabaseChangeLogBean) q.uniqueResult();
}
public Long count() {
return (Long) getCurrentSession().createQuery("select count(*) from " + domainClass().getName()).uniqueResult();
}
/**
* @return the sessionFactory
*/
public SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* @param sessionFactory
* the sessionFactory to set
*/
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* @return Session Object
*/
protected Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}
}