STS 3.2.0 で Spring Roo 1.2.4 を使用しています。
ドメイン クラスである Email オブジェクトがあるため、次の注釈があります。
@RooJavaBean
@RooToString
@RooJpaActiveRecord
私の EmailController には次の注釈があります。
@RequestMapping("/emails")
@Controller
@RooWebScaffold(path = "emails", formBackingObject = Email.class)
@RooWebJson(jsonObject = Email.class)
私の EmailServiceController_Roo_Controller_Json.aj は完全に生成されます。
ここで、Email クラスのフィールドの一部を表す EmailBean オブジェクトが必要です。これにより、ドメインの残りの部分と同様に、json を介して必要な関連フィールドのみを渡すことで、外部システムが Email オブジェクトを作成できるようになります。クラスは、保存時にシステムによって生成されます。
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 ファイルしか生成しないのはなぜですか? 私は何か間違ったことをしていますか?