【发布时间】:2022-01-23 00:48:32
【问题描述】:
我正在尝试使用休眠模式查询数据库,当我传递参数时出现以下错误。
你能帮帮我吗?
public List<Viaje> getListaViajes(Localizacion idOrigen, Localizacion idDestino, SessionFactory _SessionBuilder) {
Session sesion = _SessionBuilder.openSession();
Query origen = sesion.createQuery("from Localizacion where nombre = :nombreLocalizacion");
origen.setParameter("nombreLocalizacion", idOrigen.getNombre());
Localizacion idOrigen2 = (Localizacion) origen.uniqueResult();
System.out.println(idOrigen2.getId() + " ES SU ID.");
错误:
Información: from Localizacion where nombre = (:nombreLocalizacion)
Información: Hibernate: select localizaci0_.ID as ID1_8_, localizaci0_.Nombre as Nombre2_8_, localizaci0_.estacion as estacion3_8_, localizaci0_.latitud as latitud4_8_, localizaci0_.longitud as longitud5_8_ from bd_viajes_sig.localizacion localizaci0_ where (nombre=(?))
Advertencia: StandardWrapperValve[ControladorAjaxDestinosDisponibles]: Servlet.service() for servlet ControladorAjaxDestinosDisponibles threw exception
java.lang.NullPointerException
问题是这行不行,因为查询对应的值没有设置:
origen.setParameter("nombreLocalizacion", idOrigen.getNombre());
如果我输入查询,它是否有效。
Query origen = sesion.createQuery("from Localizacion where nombre = 'España');
idOrigen.getNombre() 方法可以正常工作,所以这不是错误。
【问题讨论】: