我有以下类:
@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中快速使用自动完成功能,我导入了我的应用程序中不可用的新版本)…