Playframework 将Ebean查询的结果转换为JSON不会';行不通

Playframework 将Ebean查询的结果转换为JSON不会';行不通,playframework,playframework-2.0,ebean,Playframework,Playframework 2.0,Ebean,现在我有 @Entity public class Argument extends Model { @Id public Long id; @Required @NotEmpty @Size(max = 140) public String summary; @SuppressWarnings("unchecked") public static Finder<Long, Argument> find = new Finder(L

现在我有

@Entity
public class Argument extends Model
{
    @Id
    public Long id;

    @Required @NotEmpty @Size(max = 140)
    public String summary;

    @SuppressWarnings("unchecked")
    public static Finder<Long, Argument> find = new Finder(Long.class, Argument.class);
    ...
}
基本上,
关系将两个参数(或一个参数和另一个关系)链接在一起。这是两个类之间的单向关系。然而我得到了

[RuntimeException: java.lang.IllegalArgumentException: Infinite recursion 
(StackOverflowError) (through reference chain: models.Argument["relations"]-> 
com.avaje.ebean.common.BeanList[0]->models.Relation["from"]-> 
models.Argument["relations"]-> ... ->models.Argument["relations"])
    at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:611) ~[jackson-databind.jar:2.2.2]
    at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:142) ~[jackson-databind.jar:2.2.2]
    ...
当我试着去做

find.where().or(Expr.eq("from", argument), Expr.eq("toArgument", argument)).findList();
然后对该结果调用
Json.toJson

@JsonBackReference
添加到引用
参数
的字段中,通过完全省略这些字段来解决问题,这不是我想要的。添加
@JsonManagedReference
可以保持问题不变,因为我看不到任何地方可以添加
@JsonBackReference
——这是单向关系,该死

基本上,我想要的只是一个包含某个参数的JSON关系数组。表示关系的JSON对象应该只包含id——类似于
{id:1,from:4,toArgument:3,type:1}
的东西正是我想要的

EDIT我应该补充一点,以前在
参数
模型中运行良好的视图现在在请求为JSON时遇到相同的错误——尽管只使用参数!在我根本不改变论点的情况下,为什么完全不同的类中的某些东西会影响论点呢?

最后用答案和答案解决了这个问题。我必须补充一点

@OneToMany(fetch = FetchType.LAZY, mappedBy = "from") @JsonBackReference
public List<Relation> fromThis;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "toArgument") @JsonBackReference
public List<Relation> toThis;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“from”)@JsonBackReference
此列表中的公共列表;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“toArgument”)@JsonBackReference
公开名单;
参数

我不完全理解为什么,现在我将整个参数对象嵌入到JSON中——而不是我想要的ID。哦,好吧,我猜。

最后用答案解决了它。我必须补充一点

@OneToMany(fetch = FetchType.LAZY, mappedBy = "from") @JsonBackReference
public List<Relation> fromThis;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "toArgument") @JsonBackReference
public List<Relation> toThis;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“from”)@JsonBackReference
此列表中的公共列表;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“toArgument”)@JsonBackReference
公开名单;
参数

我不完全理解为什么,现在我将整个参数对象嵌入到JSON中——而不是我想要的ID。哦,好吧,我想