我正在尝试开发一个应用程序,它使用 ebean 创建数据库,然后使用 play framework 2.2.0 在网页中显示表格这些是我的模型类,我也在内存数据库中使用。
父母.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"));
}
}
}
进化脚本运行没有错误,应用程序起初运行良好。但是经过几次运行后,我得到了这个错误(我不完全记得我在模型中所做的更改):
Unexpected exception
NoClassDefFoundError: Models/Children (wrong name: models/Children)
我不太熟悉 YAML 格式。所以我认为一定是这样,令人惊讶的是,我什至通过在反复试验的基础上更改我的 yaml 文件格式成功地解决了错误。但是在我退出框架控制台并再次运行它之后,我再次收到错误,这次我无法再解决它,我怀疑它可能有更深的根源。我尝试在游戏控制台上使用 clean 并重新编译,但没有成功。我什至尝试重新启动计算机(遵循臭名昭著的 IT 人群建议:您是否尝试过将其关闭再打开?!)无济于事。顺便说一句,我对 java 编程和 Stack Overflow 都是新手,所以我发布的内容甚至可能存在巨大而严重的错误。感谢您的帮助和时间。