我有以下类(class):
@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)
,它是相同。我没有任何异常(exception),服务器只是在转换方法上被阻止(如在 Debug模式下看到的)。 ArrayList 看起来格式良好。
有人有想法吗?
感谢您的帮助。
最佳答案
我犯了一个错误:我没有导入正确的@JsonIgnore(我必须使用org.codehaus.jackson.annotate.JsonIgnore
,但是,在 Eclipse 中使用自动完成功能可以快速完成操作,我导入了我的应用程序中不可用的新版本)...
关于java - Play 框架 2.0.4 Java : impossible to convert ArrayList of POJOs in JsonNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23778614/