2013-03-24 4 views
0

Я успешно отправил дату. Я проверил из «Скопированных переменных».Почему это возвращает null?

Это функция в моем компоненте, который вызывает функцию в помощнике:

public DataModel getFt() { 
    ftDataModel = new ListDataModel((List) fthelper.getByBeginDate(beginDate)); 
    return ftDataModel; 
} 

Это функция, пославшая beginDate в спящем режиме. Но здесь он возвращает null. Зачем?

public FinancialTransactions getByBeginDate(String beginDate){    
    List<FinancialTransactions> FtList = null;   
    try { 
     org.hibernate.Transaction tx = session.beginTransaction(); 
     Query q = session.createQuery("from FinancialTransactions where DATE='" + beginDate + "'"); 
     FtList = (List<FinancialTransactions>) q.list(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return FtList.get(0); 
} 
+0

Поскольку запрос ничего не нашел? – Keppil

+1

Возможно, нет данных, возвращаемых запросом, попробуйте выполнить запрос отдельно и проверьте, сколько строк оно возвращает – Addict

+0

Печать трассировки стека исключений? –

ответ

0

Один из них:

org.hibernate.Transaction tx = session.beginTransaction(); 
Query q = session.createQuery("from FinancialTransactions where DATE='" + beginDate + "'"); 

бросить исключение. Используйте отладчик или просто System.out ... чтобы найти, какой из этих двух.

+0

Если это так, тогда была бы напечатана трассировка стека исключений. –

0

Вы должны использовать параметры в запросе:

Query q = session.createQuery("from FinancialTransactions where DATE=:date").setParameter("date",beginDate); 

Там не должно быть никакого внутреннего исключения либо FtList.get (0) приведет к исключению также.

Мое предположение формируется. Вы используете строковое представление дат. Всегда плохая идея, поскольку в конвертах есть много вещей, которые могут пойти не так.

+0

Я использую«. »как seperator. Это неправильно? Также я не знаю, что означает« FtList.get (0) »означает? что неверно? – user2153566

+0

return FtList.get (0); генерирует исключение, если запрос завершился с ошибкой, потому что список (FtList) будет пустым. Использование «.» в качестве разделителя не представляет проблемы, но ваша база данных может использовать другой формат. – jagra

+0

Поле DATE в db является VARCHAR, поэтому я не думаю, что проблема. – user2153566

Смежные вопросы