Я могу извлечь данные из API и вставить их в базу данных с этими двумя объектами (для выборки данных JSON используются два разных вызова API, затем каждый элемент сохраняется в базе данных путем создания экземпляра объекта, а затем сохраняя их в базе данных).
class JiraTaskIssue
{
private $id;
private $issueId;
private $issueKey;
private $epicKey;
private $summary;
}
Другая сущность
class JiraEpicIssue
{
private $id;
private $issueId;
private $issueKey;
private $firstRequestingCountry;
}
Затем я использовал собственный скрипт sql для объединения этих двух таблиц с левым соединением. Это работает, но мне не разрешено использовать простой SQL в этом проекте. Мне нужно использовать сущности, репозитории и т.д ...
INSERT INTO jira_result (issue_id, issue_key, epic_key, summary, first_requesting_country)
SELECT
portal.jira_task_issue.issue_id,
portal.jira_task_issue.issue_key,
epic_key,
summary,
first_requesting_country
FROM portal.jira_task_issue
LEFT OUTER JOIN portal.jira_epic_issue
ON portal.jira_task_issue.epic_key = portal.jira_epic_issue.issue_key;
Я выполняю свой текущий скрипт следующим образом
$em = $this->doctrine->getEntityManager();
$sql = file_get_contents($this->jiraScript);
$statement = $em->getConnection()->prepare($sql);
$statement->execute();
Как я могу создать метод с доктриной для объединения этих двух таблиц благодаря сущностям и вставки результатов в новую таблицу (без этого простого сценария)?
(ради упрощения я много упрощал сущности)