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

fi.foyt.fni.persistence.dao.gamelibrary.OrderItemDAO Maven / Gradle / Ivy

The newest version!
package fi.foyt.fni.persistence.dao.gamelibrary;

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.gamelibrary.Order;
import fi.foyt.fni.persistence.model.gamelibrary.OrderItem;
import fi.foyt.fni.persistence.model.gamelibrary.Publication;
import fi.foyt.fni.persistence.model.gamelibrary.OrderItem_;
import fi.foyt.fni.persistence.model.illusion.IllusionEvent;

public class OrderItemDAO extends GenericDAO {

	private static final long serialVersionUID = 1L;

	public OrderItem create(Order order, Publication publication, IllusionEvent illusionEvent, String name, Double unitPrice, Integer count) {
		OrderItem orderItem = new OrderItem();

		orderItem.setCount(count);
		orderItem.setName(name);
		orderItem.setOrder(order);
		orderItem.setPublication(publication);
		orderItem.setIllusionEvent(illusionEvent);
		orderItem.setUnitPrice(unitPrice);

		getEntityManager().persist(orderItem);

		return orderItem;
	}

	public List listByOrder(Order order) {
		EntityManager entityManager = getEntityManager();

		CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
		CriteriaQuery criteria = criteriaBuilder.createQuery(OrderItem.class);
		Root root = criteria.from(OrderItem.class);
		criteria.select(root);
		criteria.where(criteriaBuilder.equal(root.get(OrderItem_.order), order));

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

	public List listOrdersByPublication(Publication publication) {
		EntityManager entityManager = getEntityManager();

		CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
		CriteriaQuery criteria = criteriaBuilder.createQuery(Order.class);
		Root root = criteria.from(OrderItem.class);
		criteria.select(root.get(OrderItem_.order)).distinct(true);
		criteria.where(criteriaBuilder.equal(root.get(OrderItem_.publication), publication));

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy