Вам необходимо изменить свои данные в соответствии с приведенным ниже примером и использовать этот компонент: https://www.npmjs.com/package/ngx-treeview
Первая модификация, которую вы можете сделать, чтобы избежать дублирования, - это создание уникального ключа в таблице source
в столбце resource
. Таким образом, даже если вы допустите ошибку в своем коде, база данных выдаст ошибку, если вы попытаетесь сохранить дубликат регистра.
С учетом вышесказанного, нет простого способа сохранить только объекты, которых нет в базе данных. Вы либо делаете столбец resource
своим основным ключом, а столбец id
выбрасываете (что я не считаю хорошим выбором), либо вам нужно сделать выбор в базе данных.
Этот вопрос содержит более подробную информацию о втором варианте
Если вы хотите изменить поток приложения, один из способов решения этой проблемы - разбить сохранение прокси на два этапа. , Сначала вы регистрируете все источники, а после сохранения всех источников вы начинаете регистрировать прокси. Таким образом, вы знаете, что когда вы сохраняете прокси-сервер, на нем уже будут предварительно сохранены все источники, что делает вашу работу на этом этапе только ссылкой на существующие источники в сущности Proxy
.