我有一个grails应用程序使用持久性注释的POJO进行域模型。 Grails按预期从它们生成控制器和视图,但是对我来说,一个类是一个难题。
我需要表示字符串的集合(目前是字符串的ArrayList),这是grails-view“友好”并将呈现为下拉列表。
ArrayList中的数据“相当”不变,所以我认为enum可以用于它,但我只是不确定。
有问题的课程:
/**
* 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;
}
}
答案 0 :(得分:1)
最简单的方法是将其作为“适当的”域对象推送到数据库中。拥有一个基本上只是名称字段的对象有点傻,但它会在脚手架视图中呈现(如果你想要与实际对象有关联)。
另一个优点是,如果您需要向AircraftCategory
添加更多数据(例如缩写),您的应用程序中将有一个简单的扩展点。
对于另一种可能的解决方案,this question非常相似。