Я хочу преобразовать java.lang.Class
в POJO
Entity
класс?
Чтобы я мог передать Entity class
как parameter
методу, который я не хочу писать отдельный метод для каждого Entity class
операция как поиск id.
Мой код выглядит следующим образом:
public Class isIdExist(int id, Class cls) {
Class clas = cls;
try ( Session session = sessionFactory.openSession()) {
CriteriaBuilder cb = session.getCriteriaBuilder();
CriteriaQuery<Class> cq = (CriteriaQuery<Class>) cb.createQuery(clas);
Root root = cq.from(clas);
cq.where(cb.equal(root.get("id"), id));
clas = session.createQuery(cq).uniqueResult();
}
return clas;
}
Код клиента:
public static void main(String[] args) {
HibernateUtil.getSessionFactory();
BLManager bLManager = new BLManager();
bLManager.isIdExist(1, Citizen.class);
}
Но я ' m получение:
java.lang.ClassCastException: class practice.pojo.Citizen cannot be cast to class java.lang.Class
Для простоты понимания я попробовал следующее:
Class cls = Citizen.class;
System.out.println("Citizen to java.lang.Class: " + cls);
Citizen citizen = (Citizen.class.cast(cls));
System.err.println("java.lang.Class to Citizen: " + citizen);
// also tried
Citizen citizen = (Citizen) cls; //compile time error.
Как я могу этого добиться?