Mensagem IllegalArgumentException: Unknown entity: javax.faces.event.ActionEvent

Boa tarde!
Eu já andei pesquisando sobre esse erro na internet, mas sem sucesso
para o meu problema em especifico.

Bem eu tenho uma classe managedBean chamada TbVeiculoMB, que extende o BasicHotelMB
esse que por sua vez, implementa o IBasicHotelMB.
Até ai tudo bem, a questão é que eu não consigo persistir os dados para o banco de dados,
eu uso o jsf2.0, a minha dao responsável pela persistência trabalha com classe genérica, o problema
é que minha classe BasicHotelMB, também, trabalha com classe genérica, então eu suspeito,
que seja isso que deva ser o problema, e eu por burrice não estou conseguindo achar uma solução ,
segue abaixo o meu código, se alguem tiver alguma solução eu agradeceria.

Classe TbVeiculoMB

@ViewScoped
@ManagedBean
public class TbVeiculoMB extends BasicHotelMB<TbVeiculo> implements
		Serializable {

	/**
	 * Atritubtos
	 */
	private static final long serialVersionUID = 6168623392412390293L;
	private TbVeiculo veiculo;
	private List<TbVeiculo> veiculos;
	private boolean readOnly;
	private List<TbVeiculo> filtro;

	/**
	 * Construtor
	 */
...

Classe BasicHotelMB

public class BasicHotelMB<T> implements IBasicHotelMB<T>, Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -6817498811548152393L;
	private Class<T> classe;
	


	@Override
	public void save(T object) {
		
		try {
			if (object.getClass() != null) {
				new DAO<T>(this.classe).insert(object);
			} else {
				new DAO<T>(this.classe).update(object);
			}
			cleanScreen(object);
			selectAll(object);
			MessageUtil.infoMsg("MSG_SUCESSO_SAVE");
		} catch (IllegalArgumentException ex) {
			ex.printStackTrace();
			MessageUtil.errorMsg("MSG_ERRO_SAVE");
		} catch (Exception ex) {
			ex.printStackTrace();
			MessageUtil.errorMsg("MSG_ERRO_SAVE");
		}
	}
public interface IBasicHotelMB<T> {

	void save(T classe);

Classe Dao


public class DAO<T> {

	private final Class<T> classe;

	public DAO(Class<T> classe) {
		this.classe = classe;
	}

	/**
	 * Retorna todos os registros de uma tabela.
	 * 
	 * @return Lista de um determinado objeto (Entidades).
	 */
	public List<T> selectAll() {
		EntityManager em = new JPAUtil().getEntityManager();
		CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
		query.select(query.from(classe));
		List<T> lista = em.createQuery(query).getResultList();
		em.close();
		return lista;
	}

	/**
	 * Insere um registro na tabela devida.
	 * 
	 * @param
	 */
	public void insert(T t) {
		EntityManager em = new JPAUtil().getEntityManager();
		em.getTransaction().begin();
		em.persist(t);
		em.getTransaction().commit();
		em.close();
	}

Se eu não usar a implementação, e a classe pai, o programa funciona normalmente.