package net.pascalalma.myservices;

import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import net.pascalalma.model.Customer;

@Stateless(name="CustomerService")
public class CustomerServiceBean
        implements CustomerServiceLocal {

    @PersistenceContext(unitName="MyPersistenceUnit")
    private EntityManager em;

    public CustomerServiceBean() {
    }

    public void insert(Customer c) {
        em.persist(c);
    }

    public void update(Customer c) {
        em.persist(c);
    }

    public void delete(Customer c) {
        em.remove(c);
    }

    public List findAllCustomers() {
        return em.createNamedQuery("Customer.findAll").getResultList();

    }

    public Customer getCustomer(Integer id) {
        return em.getReference(Customer.class, id);
    }

    public Customer findCustomer(Integer id) {
        return em.find(Customer.class, id);
    }

    public List findCustomerByName(String name) {
        Query qry = em.createNamedQuery("Customer.findByName");
        qry.setParameter("name", name);
        return qry.getResultList();
    }
}
