Play框架中的Yml文件:它们可以相互引用

时间:2011-09-18 21:15:17

标签: java playframework yaml

在我的应用程序中,我想用大数据初始化它。当我在一个YML文件中写入所有这些数据时,它大约是4 MB但是应用程序没有开始发生java堆空间错误。当我删除它的某些部分直到109 KB时,一切都有效但当然有一些缺失的数据。

我希望解决此问题的方法之一是:

  1. 制作多个文件,但如何引用另一个YML文件中的对象,这可能吗?
  2. 在启动时通过代码将架构加载到数据库中,这很容易吗?
  3. 任何此问题读者提出的解决方案......
  4. 注意:我的应用程序中的大多数数据互相引用,因此我无法将它们分成多个文件。

2 个答案:

答案 0 :(得分:0)

您可以查看DBUnit以转储并重新加载整个数据库,假设它是SQL。

答案 1 :(得分:0)

我在创业公司做了类似的事情:

@Override
public void doJob() {
    if (Image.count() == 0 && Play.mode.equals(Play.Mode.DEV)) {
        Fixtures.deleteAllModels();
        List<Image> images = Fixtures.loadYaml("Images.yml", List.class); //<-- this just loads the image objects (not in db yet)
        Fixtures.loadModels("Albums.yml"); // <----- this puts albums into db
        int i = 0;
        for (Image img : images) {
            img.album = Album.find("byName", img.album.name).first();
            img.save(); // <--- here image entities go into db
            i++;
        }
    }