Duda generics

Buenas, tengo lo siguiente:

 CriteriaQuery<tablaBBDD> q = cb.createQuery(tablaBBDD.class);

Queria hacer que tablaBBDD fuese algo generico que me llegase por ejemplo de un xml, en plan asi:

String miTabla = recuperaTablaXML("tabla1");

CriteriaQuery<miTabla > q = cb.createQuery(miTabla.class);

¿Alguna idea?

La parte miTabla.class, como bien dicen abajo (gracias por el aporte) se puede con el Class.forName, pero la parte del "tipo" es la que no se como pasar:

CriteriaQuery<miTabla>

Gracias!

(Editado porque se comió una parte por no ponerlo entre etiquetas code)

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Nopalin

Existe un metodo en el objeto

Existe un metodo en el objeto Class que te retorna una instancia de Class para el objeto que le pases como argumento en un string, solo que tienen que pasarle el nombre completo, incluyendo package

Class<org.javamexico.Test> clazz = Class.forName("org.javamexico.Test")
Imagen de alrio

Solucionado de la siguiente

Solucionado de la siguiente manera:

Un ejemplo

La funcion:

    @Transactional
    public <T> List<T> retrieveResultList(Class<T> type) {
        String tablename = type.getName(); // figure out table name from **type**
        Query query = getEntityManager().createQuery("select c from "+tablename+" c");
        List<T> resultList = query.getResultList();
        getEntityManager().close();
        return resultList;
    }

La llamada:

try {
      TradDaoImpl tdi = context.getBean("dao", TradDaoImpl.class);
      Class clazz = Class.forName("xxx.yyy.miTabla");
      tdi.retrieveResultList(clazz);
...
}
Imagen de ezamudio

generics en Java

Los generics en Java no se persisten a tiempo de ejecución.