package banco.DAO;
import java.util.List;
import javax.persistence.Query;
import banco.connection.EclipseLinkConnection;
import banco.modelo.Caixa;
import banco.modelo.MovimentacaoCaixa;
import banco.utils.MovimentacaoCaixaUtils;
public class MovimentacaoCaixaDAO extends EclipseLinkConnection implements MovimentacaoCaixaUtils{
@Override
public void saveOrUpdate(MovimentacaoCaixa modelo) {
if(modelo.getId() != null)
merge(modelo);
else
persist(modelo);
}
@Override
public void delete(MovimentacaoCaixa modelo) {
remove(modelo);
}
@Override
public MovimentacaoCaixa find(Long id) {
Query q = getEntityManager().createQuery("select m from MovimentacaoCaixa m where m.id = :id");
q.setParameter("id", id);
return (MovimentacaoCaixa)q.getSingleResult();
}
@SuppressWarnings("unchecked")
@Override
public List<MovimentacaoCaixa> findAll() {
Query q = getEntityManager().createQuery("select m from MovimentacaoCaixa m");
return q.getResultList();
}
@SuppressWarnings("unchecked")
@Override
public List<MovimentacaoCaixa> findAllByCaixaAndTipo(Caixa caixa, Character tipo) {
javax.persistence.Query q = getEntityManager().createQuery("select m from MovimentacaoCaixa m where m.caixa = :caixa " +
"and (m.tipo = :tipo or :tipo is null)");
q.setParameter("caixa", caixa)
.setParameter("tipo", tipo);
return q.getResultList();
}
}