Я знаю, что этот код довольно грязный.Копирование извлечения одного списка в другой, я уверен, что это не самое элегантное решение.Однако я просто хочу выяснить, почему это не работает.
Это метод гибернации для запроса базы данных и возврата записей в списке.т.е. список исправлений.Из этого я хочу только FixString, который я хочу использовать для заполнения списка fixString.
Однако по неизвестной мне причине.всякий раз, когда я звоню
try {
//Get all the Fix Strings stored in db
fixStrings = HibFunction.listFix();
} catch (Exception e) {
System.out.printf("Cannot get Fix strings",e);
}
Мой джунт не срабатывает, давая мне консольную распечатку
1 строка
Не удается получить исправлениеstrings
И трассировка ошибки NullPointer ...
Почему это значение равно нулю, несмотря на то, что можно распечатать результат?
public static List<String> listFix()
{
List <String> fixString = null;
List fix = null;
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
fix = session.createQuery("from metadataPoC.hib.TestHib").list();
for (Iterator iterator = fix.iterator(); iterator.hasNext();)
{
TestHib fixtable = (TestHib) iterator.next();
System.out.println("****************************************************");
System.out.println("****************************************************");
System.out.println(fixtable.getFixString());
System.out.println("****************************************************");
System.out.println("****************************************************");
fixString.add(fixtable.getFixString());
}
transaction.commit();
} catch (HibernateException e) {
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
return fixString;
}