2010-12-10 56 views
3
public class Request extends Model { 
    public static enum Category { 
     First, Second, Third 
    } 
     public Category category; 
} 

我似乎無法在我的YAML測試夾具/初始數據中正確創建帶有類別的請求。我已經試過喜歡的東西:如何在Play框架中從YAML裝置加載(靜態嵌套)枚舉值?

Request(areq): 
    category: Request.Category.Third 

和其他一些變化。什麼都沒有SnakeYAML page給了我一些誘人的提示,但我看不到如何正確引用我的應用程序包。什麼是正確的語法?

回答

0

說實話,我不是一個有經驗的用戶,但我認爲Request是一個壞名字,因爲該類存在於play-framework中。所以我會建議重新命名它。但是對於你的問題沒有必要。使用完整的名稱,意思是models.Request.Category.Third

+1

我同意你對「請求」名稱的說法。這只是一個例子而不是生產代碼,但我應該注意這一點。無論如何,這似乎還沒有起作用。 – 2010-12-12 04:33:34

+0

嗯,我在谷歌組搜索,發現只有一個例子。有人使用'category:Third'。如果綁定是由名稱完成的,這是有意義的。不要忘記JPA-Annotation'@Enumerated(EnumType.STRING)'在你的類別中。 – niels 2010-12-12 09:29:57

5

你爲什麼不使用只

... 
category: Third 

SnakeYAML應該承認類別的類型和第三字符串對象施工過程中轉換爲枚舉類第三值。

1

在Play1.2.x你也可以使用這種形式:

燈具:

EnumTest(enumtest01): 
    status: ${models.EnumTest.Status.ACTIVE} 

EnumTest(enumtest02): 
    status: ${models.EnumTest.Status.DELETED} 

對於這個模型:

@Entity 
public class EnumTest extends Model { 

    public enum Status { 
     ACTIVE, DELETED 
    } 

    public Status status; 

} 

喜歡,你可以使用路由Groovy模板,和application.conf文件,你也可以在yml文件中使用。