我正在尝试开发一个应用程序,它使用ebean创建数据库,然后使用play framework 2.2.0在网页中显示表格 这些是我的模型类,我也在内存数据库中使用。
Parents.java:
@Entity
@Table(name="parents")
public class Parents extends Model {
@GeneratedValue
public Long id;
@Id
@Constraints.Required
public String name;
@OneToMany(mappedBy="parent", cascade = CascadeType.ALL)
public List<Children> childs = new ArrayList<Children>();
}
这是Children.java:
@Entity
@Table(name="children")
public class Children extends Model {
@GeneratedValue
public Long id;
@Id
@Constraints.Required
public String name;
@ManyToOne
public Parents parent;
}
我已将Global.java设置为加载默认的.yml文件。该文件如下所示:
parents:
- !!models.Parents
id: 1
name: MOM
childs:
- !!models.Children
name: SON
children:
- !!models.Children
id: 1
name: SON
parent: !!models.Parents
name: "MOM"
而且,这是我的Global.java文件:
public class Global extends GlobalSettings {
@Override
public void onStart(Application app) {
// Check if the database is empty
if (Ebean.find(Parents.class).findRowCount() == 0) {
@SuppressWarnings("unchecked")
Map<String,List<Object>> all = Map<String,List<Object>>)Yaml.load("default.yml");
Ebean.save(all.get("parents"));
Ebean.save(all.get("children"));
}
}
}
Evolution脚本运行没有错误,应用程序一开始工作正常。但经过几次运行,我得到了这个错误(我不记得我在模型中改变了什么):
Unexpected exception
NoClassDefFoundError: Models/Children (wrong name: models/Children)
我对YAML格式并不熟悉。所以我认为必须是它,并且令人惊讶的是我甚至通过在试错的基础上更改我的yaml文件格式来成功解决错误。但是在我退出框架控制台并再次运行它之后,我再次收到错误,这次我再也无法解决它了,我怀疑它可能有更深层次的根源。我尝试使用干净并在播放控制台重新编译但没有成功。我甚至尝试重新启动计算机(遵循臭名昭着的IT人群建议:您是否尝试过将其关闭再打开?!)无济于事。顺便说一下,我是Java编程和Stack Overflow的新手,所以我发布的内容可能会出现巨大而重大的错误。谢谢你的帮助和时间。