2010-12-10 59 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文件中使用。