public List<student> get_students_roll_age(String method,String field ,Integer parameter1, int parameter2) throws Exception
{
field = "student_"+field;
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<student> cq = cb.createQuery(student.class);
Root<student> s = cq.from(student.class);
Class<?>[] paramTypes = {Path<student>.class, Integer.class};
Method cbMethod = cb.getClass().getMethod(method, paramTypes);
Predicate greater_or_less = (Predicate) cbMethod.invoke(cb, s.get(field), parameter1);
cq.where( greater_or_less);
TypedQuery<student> query = em.createQuery(cq);
return query.getResultList();
}
Я получаю имя метода как string
и хочу вызвать этот метод. Но Class<?>[] paramTypes = {Path<student>.class, Integer.class};
выдает ошибку, поскольку невозможно выбрать из parameterized type
.
Кто-нибудь может мне помочь с этим? Заранее спасибо