Я использую Java для создания полноценного API на основе функциональности интеграции данных Pentaho.
Я реализовал несколько конечных точек, таких как возможность создавать репозиторий, содержащий задания и преобразования, запускать заданияи преобразования, отображение изображения задания и преобразования, отображение подключений к базе данных в репозитории и еще немало.
Я пытаюсь создать конечную точку, которая позволяет изменять источники данных,такие как имя хоста, имя базы данных и т. д. Но я столкнулся с проблемой, когда речь идет о сохранении новых сведений о соединении.
Вот фрагмент кода, который я получил.Я жестко закодировал значения просто для целей тестирования.Я перебираю список массивов, содержащий DatabaseMeta, и затем изменяю значения полей.
for(DatabaseMeta meta: databaseMeta) {
meta.setHostName(“test_host”) ;
meta.setDBPort(“test_port”);
meta.setDBName(“test_database”);
repositoryService.updateDataSource(databaseMeta);
}
Метод updateDatasource () просто вызывает repository.save () (который является частью org.pentaho.di.repository) и передается в DatabaseMeta.
Когда этот метод выполняется, он создает файл .kdb в моем репозитории со значениями, которые я установил выше, и при выполнении запроса GET к конечной точке возвращает сведения о соединениииз нового файла.Однако я просто хочу перезаписать значения в существующем соединении преобразования и вернуть их в запросе GET.Есть ли способ, которым это может быть достигнуто?Любая помощь будет оценена.
Спасибо.