【问题标题】:Spring Roo 1.2.4 @RooWebJson doesn't generate .aj files if backing jsonObject doesn't have @RooJpaActiveRecord如果支持 jsonObject 没有 @RooJpaActiveRecord,Spring Roo 1.2.4 @RooWebJson 不会生成 .aj 文件
【发布时间】:2013-07-01 15:28:21
【问题描述】:

我正在使用带有 STS 3.2.0 的 Spring Roo 1.2.4。

我有一个电子邮件对象,它是一个域类,所以它有以下注释:

@RooJavaBean
@RooToString
@RooJpaActiveRecord

我的 EmailController 有以下注解:

@RequestMapping("/emails")
@Controller
@RooWebScaffold(path = "emails", formBackingObject = Email.class)
@RooWebJson(jsonObject = Email.class)

我的 EmailServiceController_Roo_Controller_Json.aj 已完美生成。

现在,我想要一个 EmailBean 对象,它代表我的电子邮件类中的一部分字段,这样我就可以允许外部系统通过仅通过 json 传递所需的相关字段来创建电子邮件对象,其余的域类是系统在保存时生成的。

我用以下方式注释了 EmailBean:

@RooJson
@RooJavaBean
@RooToString

如您所见,没有@RooSpaActiveRecord,因为此 bean 不代表数据库中的任何内容(不是域类)。

现在,在创建 EmailServiceController 并使用以下注释时:

@RequestMapping("/service/emails")
@Controller
@RooWebJson(jsonObject = EmailBean.class)

没有生成 EmailServiceController_Roo_Controller_Json.aj。为什么是这样?如果我将@RooSpaActiveRecord 注释添加到我的EmailBean,则会生成EmailServiceController_Roo_Controller_Json.aj。如果我使用 @RooSpaActiveRecord 注释对 EmailBean 进行注释,为什么 Roo 只生成 json 控制器 aj 文件?我做错了吗?

【问题讨论】:

    标签: spring annotations spring-roo


    【解决方案1】:

    在查看了在控制器上为使用@RooJpaActiveRecord 注释的域类生成的实际 json 方法后,我注意到它们都面向 CRUD 操作(即影响数据库)。这意味着从 Roo 的角度来看,为不是域类(存储在 db 中)的实体生成控制器 json 方法是没有意义的,因为它不知道您正在寻找什么业务方法。这意味着我需要在我的控制器中手动创建自己的,因为只有我知道我想要做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多