Я использую базу данных posgGreSQL. Я использую JPA для создания баз данных.
У меня есть две таблицы:
1) parent_table со столбцами: mapping_id, pcol1, pcol2, pcol3
2) child_table со столбцами: mapping_id, ccol1, ccol2, ccol3
'mapping_id' - внешний ключ между родительской и дочерней таблицей.
Отношения один в один.
Так же, как при использовании cascade = CascadeType.ALL, когда вы автоматически удаляете любую запись в родительской таблице, соответствующая запись из дочерней таблицы также удаляется. Метод 'delete' org.springframework.data.repository.CrudRepository удаляет не только запись родительской таблицы, но и запись дочерней таблицы.
Аналогичным образом, когда вы просто запрашиваете родительскую таблицу, можем ли мы также получить соответствующую запись из дочерней таблицы?
Мой текущий метод в классе репозитория выглядит следующим образом:
@Query("SELECT ptable, ctable FROM ParentTable as ptable,
ChildTable as cTable " + "WHERE ptable.mappingId = ctable.mappingId " +
"AND ptable.mappingId =:mappingId")
List<Object[]> findSearchProfileBodyByMappingId(@Param("mappingId") Long mappingId);
В приведенном выше запросе я пытаюсь получить данные как из родительской, так и из дочерней таблицы, используя внешний ключ where. Я пытаюсь найти лучший способ выражения запроса.