package gr.ntua.ivml.athena.db; import gr.ntua.ivml.athena.persistent.Organization; import gr.ntua.ivml.athena.persistent.Publication; import java.util.List; import org.apache.log4j.Logger; import org.hibernate.Session; public class PublicationDAO extends DAO<Publication, Long> { public static final Logger log = Logger.getLogger( PublicationDAO.class ); static { Session ss = DB.getSession(); try { ss.beginTransaction(); List<Publication> l = ss.createQuery( "from Publication where statusCode != :ok and statusCode != :err") .setInteger("ok", Publication.OK) .setInteger("err", Publication.ERROR) .list(); int count = 0; for(Publication p: l ) { p.setStatusCode(Publication.ERROR); p.setStatusMessage("Failed due to server restart!"); p.getInputUploads().clear(); count+=1; DB.commit(); } log.info( "Failed " + count + " Publications due to restart."); } catch( Exception e ) { log.error( "Exception in Publication failing", e ); } finally { DB.closeSession(); } } public Publication findByOrganization( Organization org ) { return (Publication) getSession().createQuery( "from Publication where publishingOrganization=:org") .setEntity("org", org) .uniqueResult(); } }