Playframework 2.0 为什么Ebean会无缘无故返回null?

Playframework 2.0 为什么Ebean会无缘无故返回null?,playframework-2.0,ebean,Playframework 2.0,Ebean,使用Play Framework,我有这样一个模型: class MyModel extends Model { // Some columns @ManyToOne public OtherModel other; public OtherModel getOther() { return other; } } 出于我无法理解的原因,如果我调用myModel.other或myModel.getOther()(myModel是myMo

使用Play Framework,我有这样一个模型:

class MyModel extends Model {
    // Some columns

    @ManyToOne
    public OtherModel other;

    public OtherModel getOther() {
        return other;
    }
}
出于我无法理解的原因,如果我调用
myModel.other
myModel.getOther()
myModel
myModel
的实例),我会得到一个空值,即使它应该返回OtherModel的实例

此外,如果我将
getOther()
方法更改为:

public OtherModel getOther() {
    console.log (String.valueOf(other));
    return other;
}
getOther()
返回
OtherModel

为什么会出现这种情况,以及如何修复这种奇怪的行为?

我遇到了类似的问题(但我不需要
console.log
语句)


我所做的只是用私有字段替换公共字段,并使用公共getter和setter。我认为这是一个Playframework错误,但我没有找到我在哪里看到的。

我也有类似的问题(但我不需要console.log)。我所做的只是用私有字段替换公共字段,并使用公共getter和setter。我认为这是一个Playframework bug,但我不知道在哪里看到的。您使用的是什么版本?我使用的是2.0.4,但我在2.0之后遇到了问题。我会试试你说的,我想我已经在某个地方做过了,而且效果很好。我会更新一条评论,如果是这样的话,你可以添加你的评论作为答案,这样我就可以接受了。在我的首字母测试之后,你似乎是对的!你可以用你的评论来回答,我会接受:)这可能是使用Ebean的Play Framework时最大的“问题”。当Ebens autofetch与Play的getter/setter方法发生冲突时,可能会发生奇怪的事情。我建议您阅读Timo的这篇伟大的文章以了解发生了什么:这很奇怪,我将所有属性都切换为private,但现在,所有manyTone都返回null(如
getOtherModel()
)。你知道为什么吗?有什么我遗漏了吗?好的,经过一些检查,当我过早地使用模型时,似乎出现了这个问题,这很奇怪。你说“过早地使用模型”是什么意思?我在会话中使用它。我制作的类返回“第一需要”的对象,如连接用户的帐户实例。如果我试图访问他的城市,(通过getCity()),我得到了空值。我做了一个变通方法,通过做一个自制的sql查询来获取城市。但在那之后,其他一切都很好。我不知道为什么。