1

文字列値のコレクションを持つエンティティが必要です。英数字を格納できるレシート番号を格納するため、文字列を格納する必要があります。スプリングルーのあるエンティティにそのようなフィールドを追加するにはどうすればよいですか?

私は試した

field set --fieldName controlNumbers --type java.lang.String --class ~.model.Receipt しかし、指定されたタイプに関するエラーが発生しましたが、プロジェクトで見つかりません。最初に作成する必要があります。

次に、以下のコードをエンティティに直接挿入して保存しようとすると、ajファイルが更新されました。ただし、Tomcatを実行すると問題も発生しました。

   private Set<String> controlNumbers = new HashSet<String>();

また、誰かがこれをするのを見ました

@org.hibernate.annotations.CollectionOfElements
private Set<String> controlNumbers = new HashSet<String>();

しかし、何だと思いますか、CollectionOfElementsは非推奨です。

助けてください。

4

2 に答える 2

0

--classを指定しないでください

エンティティのcontrolNumbersフィールドを文字列のコレクションにする場合は、-classをReceiptとして指定せず、-typeをjava.lang.Stringのままにします。レシートのコレクションにしたい場合は、java.lang.Stringを指定しないでください。

また、これが機能するには、Receiptエンティティがすでに存在している必要があります。まだ存在しないタイプを参照することはできません。

〜.model.Receiptオブジェクトが存在すると、次のコマンドを実行できるようになります。

フィールドセット--fieldNamecontrolNumbers--type〜.model.Receipt

その他の例については、 http://static.springsource.org/spring-roo/reference/html-single/#command-index-field-setを参照してください 。

于 2012-12-12T15:42:13.707 に答える
0

私は最近、Spring roo を使用していませんでしたが、似たようなものを実装する必要がありましたが、私のエンティティは Map を格納する必要があり、エンティティの次のようにしてうまくいきました。

@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "CONFIG_KEY")
@Column(name = "CONFIG_VALUE")
@CollectionTable(name = "CONFIG_MAPPING")
private Map<String, String> configAttributes;

これがまったく役立つかどうかはわかりませんが、共有したいと思いました

于 2012-12-12T15:25:45.390 に答える