0

我正在尝试开发一个应用程序,它使用 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 都是新手,所以我发布的内容甚至可能存在巨大而严重的错误。感谢您的帮助和时间。

4

0 回答 0