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

fi.foyt.fni.persistence.dao.forum.ForumDAO Maven / Gradle / Ivy

package fi.foyt.fni.persistence.dao.forum;

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.model.forum.Forum_;
import fi.foyt.fni.persistence.dao.GenericDAO;
import fi.foyt.fni.persistence.model.forum.Forum;
import fi.foyt.fni.persistence.model.forum.ForumCategory;

public class ForumDAO extends GenericDAO {

	private static final long serialVersionUID = 1L;

	public Forum create(String name, String urlName, String description, ForumCategory forumCategory, Boolean allowTopicCreation) {
    EntityManager entityManager = getEntityManager();

    Forum forum = new Forum();
    forum.setName(name);
    forum.setUrlName(urlName);
    forum.setCategory(forumCategory);
    forum.setDescription(description);
    forum.setAllowTopicCreation(allowTopicCreation);

    entityManager.persist(forum);

    return forum;
  }

  public Forum findByName(String name) {
    EntityManager entityManager = getEntityManager();

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery criteria = criteriaBuilder.createQuery(Forum.class);
    Root root = criteria.from(Forum.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.equal(root.get(Forum_.name), name));

    return getSingleResult(entityManager.createQuery(criteria));
  }

  public Forum findByUrlName(String urlName) {
    EntityManager entityManager = getEntityManager();

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery criteria = criteriaBuilder.createQuery(Forum.class);
    Root root = criteria.from(Forum.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.equal(root.get(Forum_.urlName), urlName));

    return getSingleResult(entityManager.createQuery(criteria));
  }

  public List listByCategory(ForumCategory category) {
    EntityManager entityManager = getEntityManager();

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery criteria = criteriaBuilder.createQuery(Forum.class);
    Root root = criteria.from(Forum.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.equal(root.get(Forum_.category), category));

    return entityManager.createQuery(criteria).getResultList();
  }  
  
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy