java.lang.NullPointerException testapp.controller.DocumentRevisionController$DocumentPropertyEditor.getAsText(DocumentRevisionController.java:59)Mapping:
@OneToMany(mappedBy="document_number", cascade = CascadeType.ALL) private Set<DocumentRevision> documentRevisions; public void setDocumentRevisions(Set<DocumentRevision> documentRevisions){ this.documentRevisions = documentRevisions; }
@ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name="DOCUMENT_NUMBER") private Document document_number; public void setDocument_number(Document document_number){ this.document_number = document_number; } public Document getDocument_number(){ return document_number; }
part of the Controller:
class DocumentPropertyEditor extends PropertyEditorSupport { @Override public void setAsText(String text) throws IllegalArgumentException { Document value = documentService.retrieveDocumentNumber(text); setValue(value); } @Override public String getAsText() { Document d = (Document) getValue(); return d != null ? String.valueOf(d.getDocumentNumber()) : ""; } } @InitBinder public void initBinder(WebDataBinder binder) { binder.registerCustomEditor(Document.class, new DocumentPropertyEditor()); } @RequestMapping(value="/add", method=RequestMethod.GET) public String getDocumentRevision(Model model) { DocumentRevision documentRevision = new DocumentRevision(); model.addAttribute("documentRevisionAttribute", documentRevision); model.addAttribute("documentNumberList", documentService.retrieveAllDocumentNumbers()); return "new-documnent-revision"; } @RequestMapping(value="/add", method=RequestMethod.POST) public String postDocumentRevision(@ModelAttribute("documentRevisionAttribute") @Valid DocumentRevision documentRevision, BindingResult result) { if(result.hasErrors()){ return "new-document-revision"; } documentRevisionService.createDocumentRevision(documentRevision); return "redirect:/testapp/document-revision/list"; }
Method that retrieves DocumentNumbers:
public void saveDocumentRevision(DocumentRevision documentRevision) { this.sessionFactory.getCurrentSession().save(documentRevision); }
Can anyone see where I've made a mistake and why the getAsText method gives the exception? Thank you for your help!
/D