Java Spring Roo/STS:ServiceImpl方法在控制器类中不可见

Java Spring Roo/STS:ServiceImpl方法在控制器类中不可见,java,interface,spring-roo,Java,Interface,Spring Roo,我在STS中创建了Roo生成的项目,并尝试定制更新/删除方法以与MongoDB一起工作(用于级联更新和删除)。我创建了服务方法,以在更新(删除)父对象时更新(删除)子对象: NoteService接口是Roo生成的,如下所示: @RooService(domainTypes = { org.dp.mongo.shortnotes.domain.Note.class }) public interface NoteService { } 然后,我将父实体Notebook的Roo controll

我在STS中创建了Roo生成的项目,并尝试定制更新/删除方法以与MongoDB一起工作(用于级联更新和删除)。我创建了服务方法,以在更新(删除)父对象时更新(删除)子对象:

NoteService接口是Roo生成的,如下所示:

@RooService(domainTypes = { org.dp.mongo.shortnotes.domain.Note.class })
public interface NoteService {
}
然后,我将父实体Notebook的Roo controller*.aj中的update和dette方法推入重构到Notebook controller类中,并添加了对子实体服务方法的调用:

@RequestMapping("/notebooks")
@Controller
@RooWebScaffold(path = "notebooks", formBackingObject = Notebook.class)
public class NotebookController {
    @Autowired
    private NoteService noteService;

    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
    public String update(@Valid Notebook notebook, BindingResult bindingResult,
            Model uiModel, HttpServletRequest httpServletRequest) {
        if (bindingResult.hasErrors()) {
            populateEditForm(uiModel, notebook);
            return "notebooks/update";
        }
        uiModel.asMap().clear();
        notebookService.updateNotebook(notebook);
        **noteService.updateNotesWithNoteBook(notebook);**
        return "redirect:/notebooks/"
                + encodeUrlPathSegment(notebook.getId().toString(),
                        httpServletRequest);
    }

    the similar for delete method...

最后得到的错误是noteService没有UpdateNodesWithNotebook和delete方法。如何修复它们?

NoteService界面中是否存在updateNotesWithNoteBook方法


您必须将其放入界面中,这就是您从控制器调用的内容。

非常感谢,我这样做了,并试图给出答案,但无法引起我的声誉级别)
@RequestMapping("/notebooks")
@Controller
@RooWebScaffold(path = "notebooks", formBackingObject = Notebook.class)
public class NotebookController {
    @Autowired
    private NoteService noteService;

    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
    public String update(@Valid Notebook notebook, BindingResult bindingResult,
            Model uiModel, HttpServletRequest httpServletRequest) {
        if (bindingResult.hasErrors()) {
            populateEditForm(uiModel, notebook);
            return "notebooks/update";
        }
        uiModel.asMap().clear();
        notebookService.updateNotebook(notebook);
        **noteService.updateNotesWithNoteBook(notebook);**
        return "redirect:/notebooks/"
                + encodeUrlPathSegment(notebook.getId().toString(),
                        httpServletRequest);
    }

    the similar for delete method...