我有以下课程:
@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格式正确。
有人有想法吗?
感谢您的帮助。
答案 0 :(得分:0)
我犯了一个错误:我没有导入正确的@JsonIgnore(我必须使用org.codehaus.jackson.annotate.JsonIgnore
但是,在Eclipse中自动完成时快速做事,我导入了我的应用程序中没有的新版本)...