com.oak_yoga_studio.dao.impl.ShoppingCartDAOImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.oak_yoga_studio.dao.impl.ShoppingCartDAOImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.oak_yoga_studio.dao.impl;

import com.oak_yoga_studio.dao.ShoppingCartDAO;
import com.oak_yoga_studio.domain.Customer;
import com.oak_yoga_studio.domain.ShoppingCart;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 *
 * @author weldu
 */
public class ShoppingCartDAOImpl implements ShoppingCartDAO {

    private SessionFactory sf;

    public void setSf(SessionFactory sf) {
        this.sf = sf;
    }

    @Transactional(propagation = Propagation.MANDATORY)
    @Override
    public void addShoppingCart(ShoppingCart shoppingCart) {
        sf.getCurrentSession().save(shoppingCart);
    }

    @Transactional(propagation = Propagation.MANDATORY)
    @Override
    public void updateShoppingCart(ShoppingCart shoppingCart) {
        sf.getCurrentSession().saveOrUpdate(shoppingCart);
    }

    @Transactional(propagation = Propagation.MANDATORY)
    @Override
    public ShoppingCart getShoppingCart(int id) {
        ShoppingCart shoppingCart = (ShoppingCart) sf.getCurrentSession().get(ShoppingCart.class, id);
        return shoppingCart;
    }

    @Transactional(propagation = Propagation.MANDATORY)
    @Override
    public List<ShoppingCart> getAllShoppingCarts() {

        Query query = sf.getCurrentSession().createQuery("from Order");
        List<ShoppingCart> shoppingCarts = query.list();

        return shoppingCarts;
    }

    @Transactional(propagation = Propagation.MANDATORY)
    @Override
    public ShoppingCart getShoppingCart(Customer customer) {
        Query q = sf.getCurrentSession().createQuery("from ShoppingCart cart where cart.customer=customer");
        List<ShoppingCart> carts = q.list();
        return carts.get(0);
    }

    @Override
    public void clearShoppingCart(int id) {
        ShoppingCart cart = getShoppingCart(id);
        if (cart != null) {
            cart.getShoppingCartItems().clear();
            updateShoppingCart(cart);
        }

    }

}