当前位置: 首页 > 知识库问答 >
问题:

使用@Query在JPA存储库中使用多个SELECT语句

赵飞雨
2023-03-14

我试图执行带有子网的select语句,在存储库中使用带有'native query=true'的@query注释。但它给了我以下错误:

psqlexception:error:“select”或“select”附近的语法错误

@Query(value="SELECT COUNT(cc.customer) AS tot FROM SELECT DISTINCT new RatingsAndReviews(c.customer,c.customerRating) FROM RatingsAndReviews AS c WHERE c.vehicle=?1 AS cc WHERE cc.customerRating=?2",nativeQuery = true)
    Integer getNoOfRatingsForStars(Vehicle vehicle,double starNumber);

sub SELECT查询单独给出如下所示执行时的预期结果

@Query("SELECT DISTINCT new RatingsAndReviews(c.customer,c.customerRating)  FROM RatingsAndReviews AS c WHERE c.vehicle=?1")
    List<RatingsAndReviews> getCustomersWhoRatedVehicle(Vehicle vehicle);

上述查询的结果集是;RatingsAndReviews对象数组

[
    {
        "customerRating": 2.0,
        "customer": {
            "customerId": 1,
            },
        },
    },
    {
        "customerRating": 3.0,
        "customer": {
            "customerId": 2,
            },
        },
    },
    {
        "customerRating": 2.0,
        "customer": {
            "customerId": 3,
            },
        },
    }
]

所以我想要得到的是客户对特定“否”的评分。星星的。比如,多少个3盯着的收视率,2盯着的收视率……等等。

 @Query("SELECT COUNT(cc.customer) AS tot FROM (SELECT DISTINCT new RatingsAndReviews(c.customer,c.customerRating)  FROM RatingsAndReviews AS c WHERE c.vehicle=?1) AS cc WHERE cc.customerRating=?2")
    Integer getNoOfRatingsForStars(Vehicle vehicle,double star);

请纠正我,如果我所做的查询是错误的,任何排序帮助是赞赏的。

共有1个答案

赫连瑾瑜
2023-03-14

首先,手动测试db查询客户端中查询的语法:例如。

SELECT COUNT(cc.customer) AS tot
  FROM
    SELECT DISTINCT new RatingsAndReviews(c.customer,c.customerRating)
    FROM RatingsAndReviews AS c
    WHERE c.vehicle='some test value here' AS cc
  WHERE cc.customerRating=<some test value here>

上面的语法有很多问题,例如,您不能使用new Type()并且应该引用表名而不是类名。

 类似资料:
  • 问题内容: 我有一个存储过程,返回一个。如何在语句中使用此存储过程的结果? 我需要这样的东西 我正在使用SQL Server 2005 问题答案: 而是创建一个表值的用户定义函数。

  • 问题内容: 我有许多需要保留到数据库的简单对象类型。我正在使用Spring JPA来管理这种持久性。对于每种对象类型,我需要构建以下内容: 在我看来,有可能用三个基于泛型的类替换每种对象类型的多个类,从而节省了大量的样板代码。我不确定该怎么做,实际上,如果这是个好主意? 问题答案: 首先,我知道我们在这里提高了一些标准,但这已经比没有Spring Data JPA的帮助而编写的代码少得多。 其次,

  • 如何使用@ Query(value = " SELECT * FROM do _ not _ track WHERE(user _ id = 7)AND(' 2022-06-25 ' BETWEEN FROM _ date AND to _ date)OR(' 2022-06-30 ' BETWEEN FROM _ date AND to _ date)",nativeQuery = true)在

  • 我突然想到,可以用三个基于泛型的类来替换每个对象类型的多个类,从而节省大量的样板代码。我不是很清楚该怎么做,事实上这是不是一个好主意?

  • 我正在开发一个Spring Boot应用程序,并在我的存储库中挣扎于SQL查询。查询应该选择员工的所有ID,从来没有张贴在我的WebApp。 在MySQL Workbench中,遵循语句ist working propper和我实现了预期的结果。 我不知道如何使用“on”并定义它的路径。

  • 我有一个代码片段,看起来像这样 配置类