【问题标题】:How to get the specific fields by API Spring Boot如何通过 API Spring Boot 获取特定字段
【发布时间】:2019-06-20 11:15:56
【问题描述】:

我需要通过 GET 将请求 REST 传输到我想从数据库 sql(从休眠)中获取的字段的参数

@GetMapping("/product")
public Object getProducts(@RequestParam(name = "fields") String fields) {
   // how?
}



@Repository
public interface ProductRuRepository extends JpaRepository<Product, Long> {
@Query("SELECT ?1 FROM Product p")
List<Product> findByFields(String fields);
}

我正在等待获取传递给参数的字段。 但是项目没有编译

【问题讨论】:

  • 如果你提供了完整的代码,那么它不会编译,因为你的 getProducts() 应该返回一个对象,但它现在什么都不做。

标签: java hibernate rest spring-boot jpa


【解决方案1】:

请将您的代码更改为以下结构:

将产品存储库关联到您的 REST 控制器。

   @RestController
   class ProductController {

    ProductRuRepository productRepository;

    @GetMapping("/product")
    public List<Product> getProducts(@RequestParam(name = "fields") String fields) 
    {
    List<Product> productList = productRepository.findByFields(fields);
    return productList;  
    }

    }

由于语法问题,您的存储库将触发运行时异常 JPA 查询。

如下所述更改查询。

@Query(value = "SELECT :fields FROM Product as p")
List<Product> findByFields(String fields);

【讨论】:

  • 对不起但没有编译,错误:调用init方法失败;嵌套异常是 java.lang.IllegalArgumentException: Validation failed for query for public abstract java.util.List com.designer.vorobeip.repository.ProductRuRepository.findByFields(java.lang.String)!
  • 我认为问题只是 Hql 查询..!
猜你喜欢
  • 2020-08-25
  • 2019-08-19
  • 2016-05-17
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多