XxxController\u Roo\u GvNIXDatatables.aj未因XxxController.java类中的更改而更新

XxxController\u Roo\u GvNIXDatatables.aj未因XxxController.java类中的更改而更新,java,spring-roo,gvnix,Java,Spring Roo,Gvnix,XxxController\u Roo\u GvNIXDatatables.aj未因XxxController.java类中的更改而更新。 在控制器类中添加“update=false,delete=false”时,通过删除update和delete方法更新XxxController\u Roo\u controller.aj,但是对于XxxController\u Roo\u GvNIXDatatables.aj,情况并非如此。这反过来会导致错误,如下所述。 示例 作为一个例子,我有下面的Spr

XxxController\u Roo\u GvNIXDatatables.aj未因XxxController.java类中的更改而更新。 在控制器类中添加“update=false,delete=false”时,通过删除update和delete方法更新XxxController\u Roo\u controller.aj,但是对于XxxController\u Roo\u GvNIXDatatables.aj,情况并非如此。这反过来会导致错误,如下所述。 示例 作为一个例子,我有下面的SpringRoo脚本

"project --topLevelPackage com.springsource.petclinic

jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

entity jpa --class ~.domain.Pet --sequenceName PET_SEQ
field string --fieldName name --notNull --sizeMin 1
field number --fieldName weight --type java.lang.Float --notNull --min 0

web mvc setup
web mvc all --package ~.web

web mvc jquery setup
web mvc jquery all

web mvc datatables setup
web mvc bootstrap setup

web mvc datatables add --type ~.web.PetController
在某些用例中,如事务,您不希望用户更新或删除,因此我通过添加“update=false,delete=false”更改了PetController.java类。这么老了:

新的:

其效果是,在PetController\u Roo\u Controller.aj文件中,更新和删除的方法被删除

public String PetController.update(@Valid Pet pet, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
public String PetController.updateForm(@PathVariable("id") Long id, Model uiModel) {
public String PetController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
但是 在PetController_Roo_GvNIXDatatables.aj文件中,不会删除update和delete方法。 这将导致以下错误:

  • 方法更新(Pet、BindingResult、Model、HttpServletRequest)是 类型为PetController的未定义
  • 方法delete(Long、Integer、Integer、Model)未定义 PetController类型
  • 问题:

  • 我的假设正确吗?两个aspectJ文件应该被视为相同的
  • 有解决办法吗? 我不想插手,因为在我看来,他们不应该在那里。 从PetController_Roo_GvNIXDatatables.aj中删除代码没有帮助,因为它们是在我下次自动启动Roo shell时插入的,顺便说一句,这是正确的

  • 首先,感谢您的报告和您对gvNIX项目的兴趣

    其次,你是对的。当控制器配置为删除某些操作(如更新或创建)时,应更新Datatables aspectJ文件

    不幸的是,如果没有推入,就没有解决方法

    在下一版本的gvNIX中,我将考虑这个问题


    致以最良好的问候,再次感谢您

    你知道下一个版本什么时候发布吗?在STS中工作时的问题是,每次我手动删除的这些方法都会被复制回来(我理解);这项措施目前有效。
    @RequestMapping("/pets")
    @Controller
    @RooWebScaffold(path = "pets", formBackingObject = Pet.class, update=false, delete=false)
    @GvNIXWebJQuery
    @GvNIXDatatables(ajax = true)
    public class PetController {
    }
    
    public String PetController.update(@Valid Pet pet, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
    public String PetController.updateForm(@PathVariable("id") Long id, Model uiModel) {
    public String PetController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {