Циклическая ссылка в вызове JSON приносит id и ref, таким образом, неопределенные значения в список опций - PullRequest
1 голос
/ 14 июля 2020

У меня есть список параметров, в котором в раскрывающемся списке отображаются неопределенные значения вместе с несколькими значениями. В ответных данных поступает только несколько значений с остальными идентификаторами REF (undefined). Сущность, с которой она связана, имеет идентификатор столбца и еще один столбец, который самостоятельно присоединяется к идентификатору с именем parent_set. Код ниже показывает объект: -

@JsonDeserialize
@JsonIdentityInfo(generator = JSOGGenerator.class)
@EqualsAndHashCode(of = {"id"})
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"}, ignoreUnknown = true)
@Entity
public class QSet implements Identifiable {

@Getter
@Setter
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(name = "id", length = 32)
private String id;

@Getter
@Setter
@Column(name = "name")
private String name;

@Getter
@Setter
@ManyToOne(optional = false, fetch = FetchType.EAGER)
@JoinColumn(name = "parent_set")
private QuestionSet parentSet;
}

HTML: -

<select ng-model="newstage.questionSet" id="questionSet" name="questionSet"
       data-toggle="tooltip" class="form-control" ng-options="set.id as set.displayText for set in qSets"/>

JS: -

$scope.qSets = response.data;

Данные ответа отладки: -

0: {@id: "1", id: "8a", name: "Test", parentSet: {…},  …}
1: {@ref: "113"}
2: {@id: "343", id: "8a81813a69fd55a5016a25c5ab9e0468", name: "test3", parentSet: null,  …}

В этом случае значение становится неопределенным для второго элемента в списке, потому что на него есть ссылка в родительском наборе идентификатора 1. Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 20 июля 2020

Исправление заключалось в декодировании данных ответа, как показано ниже:

 $scope.qSet = JSOG.decode(response.data);
...