我正在尝试在 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)
知道为什么会这样吗?