在遊戲框架,我用下面的代碼從一個名爲「報告」表,該表有其他關係的表像「項目」獲取價值「構建」等如何避免在遊戲框架延遲加載
List<Report> rpts = Report.find.where()
.eq("publish","1")
.eq("functionality_id", Integer.toString(fun.id))
.eq("project_id", currentProject.id)
.eq("prod_build", prod_build)
.eq("loadType_id", loadType_id)
.in("build_id", buildId)
.orderBy("id desc")
.findList();
我從「報告」表中獲取值列表,但未填充所有相關的表值。他們填充null。
@Entity
@Table(name="report")
public class Report {
@Id
public int id;
@Constraints.Required
@ManyToOne
@JoinColumn(name="build_id")
public Build build;
@Constraints.Required
@ManyToOne
@JoinColumn(name="project_id")
public Project project;
.
.
}
當我在幾天前測試時,它被加載了這些值,但今天不工作。當我做rpts.get(i).build.release
時,它給出nullPointerException
,因爲在這裏build爲null。此代碼在最近幾天沒有更改過。想知道爲什麼會發生這種情況。有人可以建議我是否有任何其他設置文件(如application.conf)執行此延遲加載。請幫忙。
如何指定FetchType來強制加載? 像這樣:@OneToMany(fetch = FetchType.LAZY) –