Мне нужно выбрать дату (выбор даты Liferay), введенную пользователем, и отобразить содержимое на основе этой даты в jsp. По умолчанию, когда страница загружается, дата будет текущей датой, и, следовательно, должны отображаться данные текущей даты.
Я использую пользовательский запрос и делаю вызов в jsp следующим образом:
List<Object[]> ObjdisplayAttListName = AttendanceLocalServiceUtil.findAttendance(currdate);
currdate – это дата, данные которой должны отображаться.
В пользовательском запросе у меня есть:
select stud.studName , stud.empTitle, attendance.attRemarks, attendance.attStatus , stud.fileEntryI from student stud left outer join attendance attendance on stud.studId = attendance.studId and attendance.attDate LIKE ? order by studName asc;
Я всегда получаю исключение нулевого указателя. Как я могу получить NPE? и правильный ли мой запрос, когда я пишу attendance.attDate LIKE ? В моем jsp у меня есть средство выбора даты, которое находится внутри формы. эта дата также используется для обработки данных путем передачи их в класс java. Как мне извлечь эту дату и отправить ее в пользовательский запрос?
Вот мой FinderImpl:
public class AttendanceFinderImpl extends BasePersistenceImpl implements AttendanceFinder {
public static String FIND_Attendance = "findAttendance";
@SuppressWarnings("rawtypes")
public List findAttendance(Date attendanceDate) throws SystemException {
List attSearchList = null;
Session session = null;
try {
session = openSession();
String sql = CustomSQLUtil.get(FIND_Attendance);
System.out.println("session : " + session);
System.out.println("SQL QUERY CustomSQLUtil.get(findAttendance): " + CustomSQLUtil.get("findAttendance"));
SQLQuery query = session.createSQLQuery(sql);
System.out.println("SQLQuery : " + query);
//query.addEntity("Attendance", AttendanceImpl.class);
//query.addEntity("Employee", EmployeeImpl.class);
QueryPos qPos = QueryPos.getInstance(query);
System.out.println("I am returning the query : " + query);
System.out.println("List size.list: "+ query.list());
qPos.add(attendanceDate);
System.out.println("List size: "+ query.list().size());
return (List)query.list();
}catch (Exception e) {
}
return null;
}
}
attendance.attDate
типом даты или строкой? Также я думаю, что, поскольку вы не ловите никаких исключений, вместо этого вы получаетеNull-pointer
, поскольку вы делаетеreturn null
. В вашем методе поиска есть еще одно исключение, которое нужно выяснитьe.printStackTrace()
. - person Prakash K   schedule 27.05.2013SQLGrammerException
, поскольку вы не заменили вопросительный знакLIKE ?
. О, я вижу, что в этом комментарии вы добавилиqPos
, но не обновили свой вопрос. - person Rasabihari Kumar   schedule 27.05.2013