Исключение нулевого указателя при попытке напечатать отношения Родитель - Дочерний родитель с использованием Eclipselink JPA + Spring 3 - PullRequest
0 голосов
/ 19 марта 2012

У меня есть следующие двунаправленные отношения: Курс может иметь несколько назначений.

При попытке выполнить следующее я получаю исключение Null Pointer:

У меня есть следующие методы в CourseController.java

@RequestMapping(value="view/{id}/assignment/create")
public ModelAndView createAssignment(@PathVariable("id") String id) throws Exception {

    ModelAndView modelAndView = new ModelAndView("course/assignment/create");
    Assignment assignment = new Assignment();
    assignment.setCourse(this.courseManager.getCourse(id));
    //System.out.println(assignment.getCourse().getName()); This prints the course name correctly
    modelAndView.addObject("assignment", assignment);
    return modelAndView;
}

This is the jsp:
<form:form action="/cbass/assignment/check" method="POST" commandName="assignment">

<form:errors path="*" cssClass="errorblock" element="div"/>
Course Name: ${assignment.course.name}
<table>
    <tr>
        <td>Name : </td>
        <td><form:input path="name" /></td>
        <td><form:errors path="name" cssClass="error" /></td>
    </tr>

    <tr>
    <td colspan="3"><input type="submit" /></td>
    </tr>
</table>

И это то место, куда отправляется запрос от JSP.

@RequestMapping(value = "check", method = RequestMethod.POST)
public String processSubmit(
    @ModelAttribute("assignment") Assignment assignment,
    BindingResult result, SessionStatus status) {

    assignmentValidator.validate(assignment, result);
    System.out.println(assignment.getCourse().getName());
    if (result.hasErrors()) {
        //if validator failed
        return "course/assignment/create";
    } else {
        status.setComplete();
        //form success
        System.out.println("Hello"+assignment.getCourse().getName());
        this.assignmentManager.create(assignment);
        return "course/assignment/view";//+assignment.getId();
    }
}

Хотя я могу правильно увидеть название курса на странице JSP,

Course Name: ${assignment.course.name}

Я все еще получаю исключение пустого указателя, когда пытаюсь выполнить это:

assignment.getCourse().getName()

Я новичок в Spring и EclipseLink JPA.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 19 марта 2012

Похоже, ваш курс нулевой. Убедитесь, что вы поддерживаете обе стороны отношений.

...