我正在尝试在 play1.2.4 中移植到 YABE 以播放 2.0.4 Java。为此,我创建了一个 initial-data.yml 并尝试使用 Global.java 加载它
#用户
用户:
- !!models.User
电子邮件:bob@gmail.com
密码:秘密
全名:鲍勃
isAdmin: 真
#帖子
帖子:
- !!models.Post
编号:1
标题:关于模型层
发表于:2009-06-14
作者:
- !!models.User
电子邮件:bob@gmail.com
内容:>
该模型在 Play! 中处于中心位置!应用。切....
我的 Global.java 在下面
public void onStart(Application app) {
InitialData.insert(app);
}
static class InitialData {
public static void insert(Application app) {
if(Ebean.find(User.class).findRowCount() == 0) {
Map<String, List<Object>> all = (Map<String, List<Object>>)Yaml.load("initial-data.yml");
Ebean.save(all.get("users"));
Ebean.save(all.get("posts"));
Ebean.save(all.get("comments"));
}
}
}
加载时出现以下错误
构造函数异常:空;无法为 tag:yaml.org,2002:models.Post 构造 java 对象;异常=无法创建属性=JavaBean 的作者=models.Post@1;没有为类模型找到合适的具有 3 个参数的构造函数。用户
org.yaml.snakeyaml.constructor.ConstructorException: null; 无法为 tag:yaml.org,2002:models.Post 构造 java 对象;异常=无法创建属性=JavaBean 的作者=models.Post@1;没有为类模型找到合适的具有 3 个参数的构造函数。用户
org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:333)
org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:183)
org.yaml.snakeyaml.constructor.BaseConstructor.constructSequenceStep2(BaseConstructor.java:277)
org.yaml.snakeyaml.constructor.BaseConstructor.constructSequence(BaseConstructor.java:248)
org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlSeq.construct(SafeConstructor.java:440)
org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:183)
org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:326)
org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:143)
org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:307)
org.yaml.snakeyaml.constructor.SafeConstructor$ConstructYamlMap.construct(SafeConstructor.java:459)
org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:183)
org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:142)
org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:128)
org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)
org.yaml.snakeyaml.Yaml.load(Yaml.java:411)
知道为什么会这样吗?