モバイル クライアント用の REST サーバーを作成しました。データベースアクセスに休止状態を使用しています。しかし、私はこのコードに問題があるようです
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());