I have a general method for adding, updating, and deleting objects. But I also want to use generics to retrieve data.
Here are my methods for getting data:
public static List<ClassA> getAllClassAData() {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(ClassA.class);
return criteria.list();
}
public static List<ClassB> getAllClassBData() {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(ClassB.class);
return criteria.list();
}
public static List<ClassC> getAllClassCData() {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(ClassC.class);
return criteria.list();
}
I tried to do something like this:
public static <T> List<T> getAllData() {
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(???.class);
return criteria.list();
}
And I was fixated on passing the class as arg to create criteria:
Criteria criteria = session.createCriteria(Generic.class);
How can I create a JVM, which class am I trying to pass when creating criteria?
source
share