使用hibernate的時候會用到hql語句查詢數據庫, 那就一定會用到query.list();這個方法, 那就一定會出現一個長長的黃色的警告線, 不管你想盡什么辦法, 總是存在, 雖然說這個黃色的警告並無礙於程序的運行, 但是對於我這樣有着強烈強迫症的人來說我看不下去了.
查了一些資料, 找到辦法了
原來的
public List<Object> list(String className) { Configuration conf = new Configuration().configure("conf/hibernate.cfg.xml"); ServiceRegistry serviceReg = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build(); sessionFactory = conf.buildSessionFactory(serviceReg); session = sessionFactory.openSession(); String hql = "from "+className+" where yxbz='1'"; System.out.println(hql); Query query = session.createQuery(hql); List<Object> list = query.list(); session.close(); sessionFactory.close(); return list; }
改成這樣的:
public List<?> list(String className) { Configuration conf = new Configuration().configure("conf/hibernate.cfg.xml"); ServiceRegistry serviceReg = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build(); sessionFactory = conf.buildSessionFactory(serviceReg); session = sessionFactory.openSession(); String hql = "from "+className+" where yxbz='1'"; System.out.println(hql); Query query = session.createQuery(hql); List<?> list = query.list(); session.close(); sessionFactory.close(); return list; }
原因是query.list();方法返回的是一個List<?>泛型, 而原來每次這樣寫的時候都寫成List<Object>, 所以出現這黃色的警告線, 實際上List<Object>和List<?>是沒啥毛線區別的