Я создал сервер REST для своего мобильного клиента. Я использую hibernate для доступа к базе данных. Но я, кажется, есть некоторые проблемы с этим кодомHibernate nullPointerException
public PlacesAssociation getPlacesAssocitionById(String id) {
session = HibernateUtil.getSessionFactory().getCurrentSession();
PlacesAssociation placesAssociation=null;
try {
session.beginTransaction();
placesAssociation = (PlacesAssociation) session.get(
PlacesAssociation.class, id);
session.getTransaction().commit();
} catch (RuntimeException e) {
session.getTransaction().rollback();
e.printStackTrace();
}
return placesAssociation;
}
Я видел вручную в моей базе данных, запуская запрос, где я получаю результат, но здесь я получаю NullPointerException когда-то. Поскольку эта проблема иногда это становится очень трудно проследить его
Может кто-нибудь помочь мне с этим вопросом
Это вызывающий код
public Response getSpecificRide(@PathParam("id") String id) {
// TODO Hibernate for a specific ride identified by the ride id.
try {
System.out.println("Get Specific Ride " + id);
Ride ride = rideRepository.getRideById(Long.parseLong(id));
RideDetailWrapper rideDetailWrapper = new RideDetailWrapper();
PlacesAssociation placesAssociationFrom = placesAssociationRepository.getPlacesAssocitionById(ride.getFromId());
PlacesAssociation placesAssociationTo = placesAssociationRepository.getPlacesAssocitionById(ride.getToId());
rideDetailWrapper.setId(ride.getId());
rideDetailWrapper.setInterval(ride.getInterval());
rideDetailWrapper.setSeatsAvailable(ride.getSeatsAvailable());
rideDetailWrapper.setTime(ride.getTime());
rideDetailWrapper.setFromAddress(placesAssociationFrom.getName());
rideDetailWrapper.setFromVicinity(placesAssociationFrom.getVicinity());
rideDetailWrapper.setToAddress(placesAssociationTo.getName());
rideDetailWrapper.setToVicinity(placesAssociationTo.getVicinity());
rideDetailWrapper.setVehicleType(ride.getVehicleType());
for (User user : ride.getUsers()) {
UserDetail userDetail = userRepository.getUserDetailByRegistrationId(user.getRegistrationId());
UserDetailWrapper userDetailWrapper = new UserDetailWrapper();
userDetailWrapper.setRegistrationId(userDetail.getRegistrationId());
userDetailWrapper.setAge(userDetail.getAge());
userDetailWrapper.setFirstName(userDetail.getFirstName());
userDetailWrapper.setLastName(userDetail.getLastName());
userDetailWrapper.setSex(userDetail.getSex());
List<UserDetailWrapper> userDetailWrappers = rideDetailWrapper.getUserDetailWrappers();
userDetailWrappers.add(userDetailWrapper);
rideDetailWrapper.setUserDetailWrappers(userDetailWrappers);
}
return Response.ok(rideDetailWrapper).build();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Problem with Get Specific Ride");
return Response.serverError().build();
}
}
Я получаю ошибку на этой линии rideDetailWrapper .setFromAddress (placesAssociationFrom.getName());
Что линия является 'NPE' на? –
Я добавил код вызова, который вы можете увидеть сейчас – user1827423