Я не думаю, что вы можете напрямую достичь этой функциональности, написав собственный запрос здесь.Вам нужно использовать концепцию CustomRepository
, предоставленную Spring, и создать метод deleteCategory
, который запускает два запроса внутри него, используя entityManager.Затем вы можете вызвать этот метод из уровня обслуживания.
Предположим, что ваше имя репозитория CategoryRepository
.
Теперь сначала вам нужно создать собственный интерфейс репозитория:
public interface CategoryRepositoryCustom {
void deleteCategory(Long id);
}
Затем напишите его значение:
@Repository
@Transactional
public class CategoryRepositoryImpl implements CategoryRepositoryCustom {
@PersistenceContext
EntityManager em;
@Override
@Modifying
public void deleteCategory(Long id) {
//execute your two queries one by one using entity manager
}
}
Теперь ваш основной репозиторий CategoryRepository
должен расширять как JpaRepostory
, так и CategoryRepositoryCustom
, и вы можете вызывать метод deleteCategory
из класса обслуживания.Подробнее о пользовательских репозиториях здесь