【问题标题】:Why is Ebean not loading field project from ZenTasks example application?为什么 Ebean 不从 ZenTasks 示例应用程序加载现场项目?
【发布时间】:2014-02-01 19:38:12
【问题描述】:

我正在关注 ZenTask 应用程序的 play-framework 教程,我目前在这里结束:http://www.playframework.com/documentation/2.2.x/JavaGuide3

现在我想我要么发现了一个错误,要么我的推理中遗漏了一些东西,无论如何,本教程在Application.java 中有以下代码行:

Task.find.all()

Task 类有两个有趣的字段:

@ManyToOne
public User assignedTo;

@ManyToOne
public Project project;

现在我有以下测试用例:

@Test
public void successUserLoadTest(){

    List<Task> tasks = Task.find.all();

    for(Task t : tasks){

        if(t.assignedTo != null)
            assertNotNull(t.assignedTo.name);
    }
}

@Test
public void failingProjectLoadTest(){

    List<Task> tasks = Task.find.all();

    for(Task t : tasks){

        if(t.project != null)
            assertNotNull(t.project.name);
    }
}

@Test
public void successProjectLoadTest(){

    List<Task> tasks = Task.find.fetch("project").findList();

    for(Task t : tasks){

        if(t.project != null)
            assertNotNull(t.project.name);
    }
}

问题是项目字段未填充/加载,而assignedTo 字段是。当我显式加载项目字段时没有问题。

有什么办法可以解决这个问题,还是显式加载所有 ManyToOne 字段更好?

您好!

【问题讨论】:

    标签: java playframework-2.0 ebean


    【解决方案1】:

    升级到 play-2.2.2-RC2 似乎已经解决了问题。这里描述了一个类似的问题:Play 2.1.3 application with Maven enhanced models not loading lazy objects

    仍然没有解释为什么填充了 assignedTo 字段,在这种情况下很可能是一个错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 2015-12-28
      相关资源
      最近更新 更多