当我在REST API中使用从列表中删除时,类型不兼容



我正试图在spring-boot REST web服务中使用用户名删除一个列表。我的删除方法代码块是,

@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

对此有什么建议/解决方案吗?

首先,您应该使用@DeleteMapping,而不是@PostMapping

您需要使用deleteAll方法;delete用于删除单个实体。你可以在这里查看。

此外,一个很好的建议是将delete方法的返回类型设置为void。由于您的delete方法返回getLocationsByUserName,我假设它返回的位置具有相同的用户名,因此无论如何都将为null,您可以将返回类型设置为void,并跳过对getLocationsByUserName的方法调用。

相关内容

  • 没有找到相关文章

最新更新