0

Spring Rooコマンドを使用してSpring MVCページを作成するときにOracle DBを使用すると、外部キーが対応するレコードに置き換えられたリストを含むページが作成されます。

外部キーのみを表示したいので、キーをレコードに置き換える必要はありません。

同じものを取得するオプションはありますか。フォーラムと同じフォームを見つけることができません。

よろしく

4

1 に答える 1

3

与えられた...

// 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 をそのまま使用して自分でフォームを構築することに切り替えたいと思うかもしれません。ビュー ファイル タイプ、実装パターンなどのオプションよりも多くのオプションがあります。

ケン

于 2013-06-15T21:50:08.223 に答える