All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fi.foyt.fni.persistence.dao.materials.ImageRevisionDAO Maven / Gradle / Ivy

There is a newer version: 3.3.13
Show newest version
package fi.foyt.fni.persistence.dao.materials;

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import fi.foyt.fni.persistence.dao.GenericDAO;
import fi.foyt.fni.persistence.model.materials.Image;
import fi.foyt.fni.persistence.model.materials.ImageRevision;
import fi.foyt.fni.persistence.model.materials.ImageRevision_;

public class ImageRevisionDAO extends GenericDAO {

	private static final long serialVersionUID = 1L;

	public ImageRevision create(Image image, Long revision, Date created, Boolean compressed, Boolean completeRevision, byte[] data, String checksum, String sessionId) {
    ImageRevision imageRevision = new ImageRevision();
    imageRevision.setCreated(created);
    imageRevision.setCompleteRevision(completeRevision);
    imageRevision.setCompressed(compressed);
    imageRevision.setCreated(created);
    imageRevision.setData(data);
    imageRevision.setImage(image);
    imageRevision.setRevision(revision);
    imageRevision.setChecksum(checksum);
    imageRevision.setSessionId(sessionId);
    
    return persist(imageRevision);
  }
	
	public List listByImage(Image image) {
		EntityManager entityManager = getEntityManager();

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery criteria = criteriaBuilder.createQuery(ImageRevision.class);
    Root root = criteria.from(ImageRevision.class);
    criteria.select(root);
    criteria.where(
      criteriaBuilder.equal(root.get(ImageRevision_.image), image)
    );
    
    return entityManager.createQuery(criteria).getResultList();
	}

	public  List listByImageAndRevisionGreaterThan(Image image, Long revision) {
		EntityManager entityManager = getEntityManager();

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery criteria = criteriaBuilder.createQuery(ImageRevision.class);
    Root root = criteria.from(ImageRevision.class);
    criteria.select(root);
    criteria.where(
      criteriaBuilder.and(
    		criteriaBuilder.equal(root.get(ImageRevision_.image), image),
    		criteriaBuilder.greaterThan(root.get(ImageRevision_.revision), revision)
    	)
    );
    
    return entityManager.createQuery(criteria).getResultList();
  }
  
  public Long maxRevisionByImage(Image image) {
    EntityManager entityManager = getEntityManager();

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery criteria = criteriaBuilder.createQuery(Long.class);
    Root root = criteria.from(ImageRevision.class);
    criteria.select(criteriaBuilder.max(root.get(ImageRevision_.revision)));
    criteria.where(
      criteriaBuilder.equal(root.get(ImageRevision_.image), image)
    );
    
    return entityManager.createQuery(criteria).getSingleResult();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy