package com.github.windbender.dao;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.SessionFactory;
import com.github.windbender.domain.ImageRecord;
import com.yammer.dropwizard.hibernate.AbstractDAO;
public class ImageRecordDAO extends AbstractDAO<ImageRecord>{
public ImageRecordDAO(SessionFactory sessionFactory) {
super(sessionFactory);
}
public ImageRecord findById(String id) {
return get(id);
}
public List<ImageRecord> findBestByVote(Long long1) {
String sql = "select count(*) as vote,image_id from image_flagged_good a, images b, cameras c where a.flagged=1 and a.image_id=b.id and camera_id=c.id and c.project_id=? group by image_id order by vote desc, imageTime";
SQLQuery sqlQuery = this.currentSession().createSQLQuery(sql);
Query query = sqlQuery.setParameter(0, long1);
List<Object[]> l = query.list();
List<ImageRecord> ol = new ArrayList<ImageRecord>();
for(Object[] oa: l) {
//BigInteger vote = (BigInteger) oa[0];
String image_id = (String) oa[1];
ImageRecord ir = findById(image_id);
ol.add(ir);
}
return ol;
}
public String create(ImageRecord ir) {
return persist(ir).getId();
}
public List<ImageRecord> findAll() {
return list(namedQuery("com.github.windbender.ImageRecord.FindAllOrderByTime"));
}
public void save(ImageRecord addImage) {
this.currentSession().saveOrUpdate(addImage);
}
}