package org.odroid.server.dao;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.odroid.server.entities.Application;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class ApplicationDAO {
@Autowired
private SessionFactory sessionFactory;
public Application persistOrMerge(Application app) {
return (Application) currentSession().merge(app);
}
public Application getApplicationForHash(String hash) {
Session s = currentSession();
Criteria c = s.createCriteria(Application.class);
c.add(Restrictions.eq("hash", hash));
c.setMaxResults(1);
return (Application) c.uniqueResult();
}
@SuppressWarnings("unchecked")
public List<Application> getAllApplications() {
Session s = currentSession();
Criteria c = s.createCriteria(Application.class);
return (List<Application>) c.list();
}
private Session currentSession() {
return sessionFactory.getCurrentSession();
}
}