Excluir Objetos usando Hibernate

Estou usando o critéria do Hibernate e tentando excluir vários objetos através de uma consulta e não estou conseguindo. Segue o meu código que tentei usar

@SuppressWarnings("unchecked")
@Override
@java.beans.Transient
public void excluirServico(Date dataInicio, Date dataFim, Funcionario funcionario) {
	
	Session session = HibernateConnection.getFactorySession();
	
	List<Servico> servicos = new ArrayList<Servico>();	
	
	servicos =  session.createCriteria(Servico.class)
	.add(Restrictions.between("data", dataInicio, dataFim))
	.add(Restrictions.eq("funcionario.condigoFunc", funcionario.getCodigoFunc())).list();
	
	for (Servico serv : servicos){ 
		session.delete(serv);
	}
}

Para métodos de consulta não é necessário abrir transação nem executar o commit, mas para métodos de escrita, como o delete(), é necessário realizar estes passos. Não vi nenhum, nem outro no seu código.
Você tem alguma exceção sendo lançada quando executa o delete() ?

Olá amigo, bom sou novo no desenvolvimento e estou acompanhando um curso. Mais está assim meu código

OBS: Alguns métodos estão funcionando no meu DAO, Ex: salvar,consultar e outros.
OBS: Ele está mostrando uma mensagem que eu coloquei dentro do meu try do meu Bean como estivesse conseguido excluirm mais não exclui. Caso precise posso colocar o código completo.

@WebFilter(servletNames = { “Faces Servlet” })
public class HibernateSessionFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
	
	Session session = HibernateConnection.getFactorySession();
	Transaction transaction = null;

	try {
		  transaction = session.beginTransaction();//inicia uma transação.
		  request.setAttribute("session", session);//variavel de requisição.

		  chain.doFilter(request, response); 								
		  transaction.commit();
		  
	} catch (Exception e) {
		//Se der problema, não faz o commit, eu faço o rollbalck().
		if (transaction != null) {
			transaction.rollback(); // retorno dos dados, caso ocorra erro.
		}
	} finally {
		session.close();
	}
}

@Override
public void destroy() {

}

@Override
public void init(FilterConfig arg0) throws ServletException {

}

}

Classe de Conexão.
public class HibernateConnection {

private static final SessionFactory factorySessao; 

static {
 		try {
			Configuration configuration = new Configuration(); //representa uma configuração Hibernate
			configuration.configure();//ler meu arquivo.xml que configurei

			//Conecta com Banco.
			ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
											  .applySettings(configuration.getProperties())
											  .buildServiceRegistry();

			//Criando a Fábrica de Sessão.			
			factorySessao = configuration.buildSessionFactory(serviceRegistry); 
			
		} catch (Throwable ex) {
			throw new ExceptionInInitializerError(); //É um erro de Inicialização.
		}
}

/*
 * Método Statico que abre a conexão.
 */
public static Session getFactorySession() {
	return factorySessao.openSession(); 
}

public static Object getRequestAttribute(String nome) {
	FacesContext facesContext = FacesContext.getCurrentInstance();
	ExternalContext externalContext = facesContext.getExternalContext();
	HttpServletRequest request = (HttpServletRequest) externalContext.getRequest(); //
	
	return request.getAttribute(nome);
}

}