我想按数量加载最畅销的产品。这些是我的表:
Product
id name
1 AA
2 BB
Productorder
order_id product_id quantity
1 1 10
2 1 100
3 2 15
4 1 15
这是我的Spring Data Repository:
@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
@Query(value = "select top 5 p.name, sum(po.quantity) as total_quantity from product p " +
"inner join productorder po " +
"on p.id = po.product_id " +
"group by p.id, p.name " +
"order by total_quantity desc", nativeQuery = true)
List<Product> findTopFiveBestSeller();
}
我正在获取 HsqlException:找不到列:id
我认为此错误与id列无关,因为这两个表都存在。“按汇总查询”可用于Spring数据吗?因为对于Spring
Data应该仅从数据库中选择产品属性,这对我来说似乎并不奇怪,并且使用此sql我们还选择了sum(po.quantity)。Spring数据可以处理此问题并将结果转换为List吗?
PS:我正在使用HSQLDB嵌入为数据库。
在将select语句的投影从更改为p.name
,p.*
以指示我选择了多个值,而不只是选择必须魔术转换为Product
对象的String对象之后,此方法有效:
@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
@Query(value = "select top 5 p.*, sum(po.quantity) as total_quantity from product p " +
"inner join productorder po " +
"on p.id = po.product_id " +
"group by p.id, p.name " +
"order by total_quantity desc", nativeQuery = true)
List<Product> findTopFiveBestSeller();
}
谢谢@JMK和@JB Nizet。
我使用fetch获取数据,我想用chart.js显示它,而不是显示数据。我错在哪里?如果你帮忙我会很高兴的 我的代码在下面
问题内容: 我不明白JUnit 4.8如何与Hamcrest匹配器一起工作。有内部定义了一些匹配器在。同时,也有一些 其他 的匹配器中。那么,去哪儿呢?我是否应该在项目中明确包含hamcrest JAR并忽略JUnit提供的匹配器? 特别是,我对匹配器感兴趣,并且在任何这些jar中都找不到。我还需要其他东西吗?:) 还有一个哲学问题:为什么JUnit将包包含在自己的发行版中而不是鼓励我们使用原始的
我尝试使用和通过Postman发送JSON和多个文件,但它不起作用。有可能在API中同时使用这两个注释吗?
当用户单击LoginFragment上的一个按钮时,我将打开另一个名为forgetpassword的片段。这是一个webview,url正在从远程服务器加载。而html中的文本字段是通过软键盘隐藏的。所以我尝试使用adjustResize,它工作得很好。但是loginfragment中的editText小部件被键盘隐藏了。 如何在我的活动中实现两个标志。请帮帮我。
我有以下的类描述片段: 此代码在HiberNate 4上不起作用,因为不支持 我从Joda Time看到了关于如何使用LocalDateTime的建议,但我使用的是Java 8。
我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。