我试图在Spring启动数据库(http://localhost:8180/products/2)中进行查询,服务器响应:
此应用程序没有/ error的显式映射,因此您将此视为后备。
Thu Oct 26 01:29:12 COT 2017出现意外错误 (type = Internal Server Error,status = 500)。缺少URI模板 long类型的方法参数的变量'productoId'
这个界面
package com.beitech.orders.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import com.beitech.orders.model.Product;
public interface ProductJpaRepository extends JpaRepository<Product, Long> {
Product findByProductoId(Long productoId);
@Query(value = "SELECT * FROM PRODUCT WHERE PRODUCTO_ID = ?1", nativeQuery = true)
Product findByproductoId3(Long productoId);
}
这是控制器:
package com.beitech.orders.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.beitech.orders.model.Product;
import com.beitech.orders.repository.ProductJpaRepository;
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductJpaRepository productJpaRepository;
@GetMapping(value = "/allProducts")
public List<Product> findAll(){
return productJpaRepository.findAll();
}
@GetMapping(value = "/{productId}")
public Product findByProductoId(@PathVariable final Long productoId){
return productJpaRepository.findByProductoId(productoId);
}
}
答案 0 :(得分:1)
您已定义
@GetMapping(value = "/{productId}")
@PathVariable final Long productoId){
productId
和productoId
之间存在不匹配。如果您希望productId
绑定到Long productoId
,则必须声明@PathVariable(name="productId")
或者只需将productoId
重命名为productId
,反之亦然。