Play Framework 2.0.4 Java:无法在JsonNode中转换pojo的ArrayList



我有以下类:

@Entity
@Table(name = "update_field")
public class UpdateField extends Model {
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    public int                                 id;
    @ManyToOne
    @JoinColumn(name = "update_proposition")
    @JsonIgnore
    public UpdateProposition                   updateProposition;
    @Column(name = "nom_champ")
    public String                              nomChamp;
    @Column(name = "nom_clair")
    public String                              nomEnClair;
    @Column(name = "old_value")
    public String                              oldValue;
    @Column(name = "new_value")
    public String                              newValue;
    public static Finder<Integer, UpdateField> find = new Finder<Integer, UpdateField>(Integer.class, UpdateField.class);
}

我得到一个数组列表复合类的实例,并试图转换它在JsonNode,但它不工作,它阻塞了我的服务器,我必须重新启动它。

public static Result getFields(final String requestUUID) {
        List<UpdateProposition> propositionList = UpdateProposition.find.where()
                                                                        .eq("update_request",
                                                                            UUID.fromString(requestUUID)).findList();
        List<UpdateField> result = new ArrayList<UpdateField>();
        for(UpdateProposition updateProposition : propositionList) {
            List<UpdateField> fieldList = UpdateField.find.where().eq("update_proposition", updateProposition.id)
                                                          .findList();
            for(UpdateField updateField : fieldList) {
                result.add(updateField);
            }
        }
        ObjectMapper om = new ObjectMapper();
        JsonNode node = om.valueToTree(result);
        // JsonNode node = Json.toJson(result);
        return ok(node);
    }

我尝试直接使用play.lib.Json.toJson(Object)org.codehaus.jackson.map.ObjectMapper.valueToTree(Object),它是相同的。我没有任何例外,服务器只是阻塞了转换方法(如在调试模式中所见)。

有人有主意吗?

谢谢你的帮助。

我犯了一个错误:我没有导入正确的@JsonIgnore(我不得不使用org.codehaus.jackson.annotate.JsonIgnore,但是,在Eclipse中快速使用自动完成功能,我导入了我的应用程序中不可用的新版本)…

最新更新