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

时间:2014-05-21 09:02:19

标签: java json playframework playframework-2.0 jackson

我有以下课程:

@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);
}

我通过这个类的实例得到一个ArrayList复合,并尝试在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),但它是一样的。我没有任何异常,服务器只是在转换方法上被阻止(如调试模式中所示)。 ArrayList sems格式正确。

有人有想法吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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