Spring Rooコマンドを使用してSpring MVCページを作成するときにOracle DBを使用すると、外部キーが対応するレコードに置き換えられたリストを含むページが作成されます。
外部キーのみを表示したいので、キーをレコードに置き換える必要はありません。
同じものを取得するオプションはありますか。フォーラムと同じフォームを見つけることができません。
よろしく
Spring Rooコマンドを使用してSpring MVCページを作成するときにOracle DBを使用すると、外部キーが対応するレコードに置き換えられたリストを含むページが作成されます。
外部キーのみを表示したいので、キーをレコードに置き換える必要はありません。
同じものを取得するオプションはありますか。フォーラムと同じフォームを見つけることができません。
よろしく
与えられた...
// Spring Roo 1.2.4.BUILD-SNAPSHOT [rev 7c12381] log opened at 2013-06-15 17:13:26
project --topLevelPackage org.foo.bar --projectName baz
jpa setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT
entity jpa --class ~.db.Customer
field string name
entity jpa --class ~.db.Sale
field string --fieldName description
field number --type java.math.BigDecimal --fieldName amount
field reference --fieldName customer --type ~.db.Customer --cardinality MANY_TO_ONE
focus --class ~.db.Customer
field set --fieldName sales --type ~.db.Sale --cardinality ONE_TO_MANY
web mvc setup
web mvc all --package ~.web
quit
顧客のリスト (片側) を表示すると、顧客データのみが表示されます。販売 (多) 側では、Customer 列が表示され、すべてのフィールドのフィールド値が外部キーとして連結されています (この場合は単なる名前です)。
関連するタグは次のとおりです。
<table:table data="${sales}"
id="l_org_foo_bar_db_Sale"
path="/sales" z="4N/i5ige4wSEk62VRQK6R47NPIQ=">
...
<table:column id="c_org_foo_bar_db_Sale_customer"
property="customer" z="v8Cm6lkbb5e5TiYflyqTaRGopvg="/>
...
</table>
残念ながら、テーブルと列のタグは少し扱いにくいです。table:table タグが担当するように、列タグは各行の表の見出しと本文のレンダリングに使用されます。property="customer.id"
そして、その戦略を殺すようなことは許されません。
これを解決する 1 つの方法は、ApplicationConversionServiceFactoryBean で Customer のコンバーターを「プッシュイン」リファクタリングすることです。.aj ファイルを見て、エンティティのメソッドを取り出し、ID を返すだけのものに置き換えます。
public Converter<Customer, String> getCustomerToStringConverter() {
return new Converter<Customer, String>() {
public String convert(Customer customer) {
return customer.getId().toString();
}
};
問題は、すべてのドロップダウン リストが新しい値を取得することです。したがって、編集フォームがあり、そこに顧客の名前を参照して、人々が十分な情報に基づいて決定できるようにしたい場合、そのままでは機能しません。
それを回避する方法もあります。field:select
販売ドメインの更新および作成フォームでタグを変更できます。itemLabel
プロパティを追加して、ドロップダウンに表示するフィールドを決定します。式を必要としないため、複数のフィールドを表示する必要がある場合に、連結された複数のフィールドを返すゲッターを作成することができます。
RooInAction の第 6 章で、この種のスキャフォールディングのカスタマイズについて説明します。ただし、最終的には、Spring MVC をそのまま使用して自分でフォームを構築することに切り替えたいと思うかもしれません。ビュー ファイル タイプ、実装パターンなどのオプションよりも多くのオプションがあります。
ケン