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(); } }