Spring Rooでは、このチュートリアルをカスタムxsdで使用してオブジェクトを生成しました。
その後、コマンドコントローラーをすべて〜.webで使用しました。コントローラーは生成されますが、CRUD関数はありません。
RooコントローラーでCRUD機能を使用して手動オブジェクトを作成すると生成されます。問題は何ですか?
私の場合、スキーマファイルxsdはRESTデータ交換にとって重要です。
2 に答える
参照しているチュートリアルでは、提供されたxmlスキーマに基づいてJava(ドメイン)モデルを作成する方法を実際に説明していますが、現在(バージョン1.1.0)のcontroller all〜.webコマンドは、実際のコントローラーと対応するCRUD関数のみを作成しますRoo(データベース)エンティティ。生成されたJavaクラスはRooエンティティとしてマークされていないため、コントローラーコマンドは期待どおりのCRUDコマンドを作成しません。これは、手動で作成されたエンティティに対しては、Rooエンティティとしてマークされているため実行されます(@RooEntityを参照)。これらの注釈)。
チュートリアルにも記載されているように、Spring Roo jaxbアドオンを使用する場合は、コントローラーとビュー(* .jspx)ファイルを手動で更新してCRUD機能を実装する必要があります。フォーラムとJiraの問題を確認したところ、現在、Spring Rooに通常の(エンティティ以外の)Beanの基本的なCRUD機能を作成させることについていくつかのアイデアがあることがわかりました(問題ROO-344を参照)。これはROO-277の問題に関連しています)が、これらは現在のところ単なるアイデアであり、近い将来には実装されない可能性があります。したがって、Spring RooドメインモデルのベースとしてXMLスキーマを使用する場合でも、ドメインモデルを生成するためのベースとしてデータベースを使用するのではなく、基本的なCRUDアプリケーションを作成するためにかなりの手動コーディングを行う必要があります。 、基本的にはRooシェルでいくつかのコマンドを実行しているので、これで完了です。
XMLスキーマがドメインモデルの定義に過ぎず、変更を取得および保存するためにREST Webサービスを呼び出すのではなく、アプリケーションによってデータベースにデータを保存およびデータベースから取得する必要がある場合は、次を使用してみてください。 jaxbアドオンを使用してモデルを生成し、生成されたクラスに注釈を付けますが、これまで自分で行ったことがないため、それが機能するかどうかはわかりませんが、試す価値があるかもしれません。
Spring Rooは、.javaソースファイルの隣にAspectJ(.aj)ファイルを生成します。したがって、ソースファイルにメソッドは表示されません。これらは.ajファイルにありますが、コンパイル後に生成された.classファイルに存在します。