
fi.foyt.fni.persistence.dao.materials.IllusionEventDocumentDAO Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of persistence Show documentation
Show all versions of persistence Show documentation
Forge & Illusion - Persistence
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.common.Language;
import fi.foyt.fni.persistence.model.materials.Folder;
import fi.foyt.fni.persistence.model.materials.IllusionEventDocument;
import fi.foyt.fni.persistence.model.materials.IllusionEventDocumentType;
import fi.foyt.fni.persistence.model.materials.IllusionEventDocument_;
import fi.foyt.fni.persistence.model.materials.MaterialPublicity;
import fi.foyt.fni.persistence.model.users.User;
public class IllusionEventDocumentDAO extends GenericDAO {
private static final long serialVersionUID = -4644199519384824575L;
public IllusionEventDocument create(User creator, IllusionEventDocumentType documentType, Language language, Folder parentFolder, String urlName, String title, String data, MaterialPublicity publicity, Integer indexNumber) {
Date now = new Date();
IllusionEventDocument illusionEventDocument = new IllusionEventDocument();
illusionEventDocument.setData(data);
illusionEventDocument.setCreated(now);
illusionEventDocument.setCreator(creator);
illusionEventDocument.setModified(now);
illusionEventDocument.setModifier(creator);
illusionEventDocument.setTitle(title);
illusionEventDocument.setUrlName(urlName);
illusionEventDocument.setPublicity(publicity);
illusionEventDocument.setDocumentType(documentType);
illusionEventDocument.setLanguage(language);
illusionEventDocument.setParentFolder(parentFolder);
illusionEventDocument.setIndexNumber(indexNumber);
return persist(illusionEventDocument);
}
public IllusionEventDocument findByParentFolderAndDocumentType(Folder parentFolder, IllusionEventDocumentType documentType) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteria = criteriaBuilder.createQuery(IllusionEventDocument.class);
Root root = criteria.from(IllusionEventDocument.class);
criteria.select(root);
criteria.where(
criteriaBuilder.and(
criteriaBuilder.equal(root.get(IllusionEventDocument_.parentFolder), parentFolder),
criteriaBuilder.equal(root.get(IllusionEventDocument_.documentType), documentType)
)
);
return getSingleResult(entityManager.createQuery(criteria));
}
public List listByParentFolderAndDocumentType(Folder parentFolder, IllusionEventDocumentType documentType) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteria = criteriaBuilder.createQuery(IllusionEventDocument.class);
Root root = criteria.from(IllusionEventDocument.class);
criteria.select(root);
criteria.where(
criteriaBuilder.and(
criteriaBuilder.equal(root.get(IllusionEventDocument_.parentFolder), parentFolder),
criteriaBuilder.equal(root.get(IllusionEventDocument_.documentType), documentType)
)
);
return entityManager.createQuery(criteria).getResultList();
}
public Integer maxIndexNumberByParentFolder(Folder parentFolder) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery criteria = criteriaBuilder.createQuery(Integer.class);
Root root = criteria.from(IllusionEventDocument.class);
criteria.select(criteriaBuilder.max(root.get(IllusionEventDocument_.indexNumber)));
criteria.where(
criteriaBuilder.equal(root.get(IllusionEventDocument_.parentFolder), parentFolder)
);
return entityManager.createQuery(criteria).getSingleResult();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy