我有添加,更新和删除实体的通用方法.但我也想使用泛型来检索数据.
这是我获取数据的方法:
public static ListgetAllClassAData() { Session session = HibernateUtil.getSessionFactory().openSession(); Criteria criteria = session.createCriteria(ClassA.class); return criteria.list(); } public static List getAllClassBData() { Session session = HibernateUtil.getSessionFactory().openSession(); Criteria criteria = session.createCriteria(ClassB.class); return criteria.list(); } public static List getAllClassCData() { Session session = HibernateUtil.getSessionFactory().openSession(); Criteria criteria = session.createCriteria(ClassC.class); return criteria.list(); }
我试着做这样的事情:
public staticList getAllData() { Session session = HibernateUtil.getSessionFactory().openSession(); Criteria criteria = session.createCriteria(???.class); //Here is where I'm stuck return criteria.list(); }
我坚持将类作为arg传递给标准创建:
Criteria criteria = session.createCriteria(Generic.class);
如何让JVM知道我在标准创建过程中想要传递的类?
您的通用方法看起来应该更像:
public static <T> List<T> getAllData(Class<T> clazz) { Session session = HibernateUtil.getSessionFactory().openSession(); Criteria criteria = session.createCriteria(clazz); return criteria.list(); }
你应该调用它:
List<ClassA> list = getAllData(ClassA.class);