当我在 REST API 中使用从列表中删除时不兼容的类型
Incompatible types when I used delete from the list in 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
任何suggestion/solution吗?
首先,您应该使用 @DeleteMapping
而不是 @PostMapping
。
您需要使用deleteAll
方法; delete
用于删除单个实体。您可以查看 here.
此外,一个好的建议是将 return 类型的删除方法设为 void
。由于您的删除方法是 returning getLocationsByUserName
,我假设它 returns 结果是具有相同用户名的位置,无论如何都将为空,您可以使 return 输入 void
并跳过对 getLocationsByUserName
.
的方法调用
我正在尝试使用 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
任何suggestion/solution吗?
首先,您应该使用 @DeleteMapping
而不是 @PostMapping
。
您需要使用deleteAll
方法; delete
用于删除单个实体。您可以查看 here.
此外,一个好的建议是将 return 类型的删除方法设为 void
。由于您的删除方法是 returning getLocationsByUserName
,我假设它 returns 结果是具有相同用户名的位置,无论如何都将为空,您可以使 return 输入 void
并跳过对 getLocationsByUserName
.