1

ドメインモデルに永続性注釈付きPOJOを使用するgrailsアプリがあります。Grailsは期待どおりにコントローラーとビューを生成しますが、1つのクラスは私にとってパズルです。

文字列のコレクション(現時点では文字列のArrayList)を、grails-view'friendly'で表現する必要があり、ドロップダウンとしてレンダリングされます。

ArrayListのデータは「かなり」一定なので、列挙型を使用できると思いましたが、よくわかりません。

問題のクラス:

/**
 *  available categories:
 *      Airplane
 *      Rotorcraft
 *      Glider
 *      Lighter than air
 *      Powered lift
 *      Powered parachute
 *      Weight-shift-control
 */
@Entity
public class AircraftCategory {

    public AircraftCategory(){

    this.aircraftCategories.add("Airplane");
    this.aircraftCategories.add("Rotorcraft");
    this.aircraftCategories.add("Glider");
    this.aircraftCategories.add("Lighter Than Air");
    this.aircraftCategories.add("Powered Lift");
    this.aircraftCategories.add("Powered Parachute");
    this.aircraftCategories.add("Weight Shift Control");   
    }

    long id;
    private long version;   
    private ArrayList <String> aircraftCategories = new ArrayList<String>();

    public ArrayList <String> getAircraftCategories() {
        return aircraftCategories;
    }

    public void setAircraftCategories(ArrayList <String> aircraftCategories) {
        this.aircraftCategories = aircraftCategories;

    }

    @Id
    @GeneratedValue
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }    

    public long getVersion() {
        return version;
    }

    public void setVersion(long version) {
        this.version = version;
    } 
}
4

1 に答える 1

1

最も簡単な方法は、これを「適切な」ドメイン オブジェクトとして DB にプッシュすることです。基本的に単なる名前フィールドであるオブジェクトを持つのは少しばかげていますが、スキャフォールディングされたビューで必要に応じてレンダリングされます (実際のオブジェクトへの関連付けがあると仮定します)。

AircraftCategoryもう 1 つの利点は、省略形などのデータを に追加する必要がある場合に備えて、後でアプリケーションに簡単な拡張ポイントがあることです。

別の可能な解決策として、この質問は非常に似ています。

于 2012-07-09T17:54:01.843 に答える