Несовместимые типы, когда я использовал удаление из списка в REST API - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь удалить список, используя имя пользователя в веб-службе REST с весенней загрузкой. Мой блок кода для метода удаления:

@PostMapping("/delete/{username}")
public List<String> delete(@PathVariable("username") final String username) {

    List<Location> locations = locationsRepository.findByUserName(username);
    locationsRepository.delete(locations);
    return getLocationsByUserName(username);
}

и LocationsRepository, как показано ниже,

import com.smartfarm.dbservice.model.Location;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface LocationsRepository extends JpaRepository<Location, Integer> {
    List<Location> findByUserName(String username);
}

Когда я компилирую эту программу, я получаю сообщение об ошибке

incompatible types: java.util.List<com.smartfarm.dbservice.model.Location> cannot be converted to com.smartfarm.dbservice.model.Location

Есть предложения / решения по этому поводу?

1 Ответ

0 голосов
/ 03 августа 2020

Во-первых, вы должны использовать @DeleteMapping, а не @PostMapping.

Вам нужно использовать метод deleteAll; delete используется для удаления отдельного объекта. Вы можете проверить здесь .

Более того, одним из хороших предложений было бы сделать тип возврата метода удаления как void. Поскольку ваш метод удаления возвращает getLocationsByUserName, я предполагаю, что он возвращает местоположения с тем же именем пользователя в результате, которое в любом случае будет нулевым, вы можете сделать тип возврата как void и пропустить вызов метода на getLocationsByUserName.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...