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

Spring数据-按列乘法排序

郭知
2023-03-14

我遇到了一个问题,我需要将两列实体相乘来排序,为了想象,实体是:

@Entity
public class Entity {

    @Column(name="amount")
    private BigDecimal amount;

    @Column(name="unitPprice")
    private BigDecimal unitPrice;

    .
    .
    .
    many more columns
}

我不能使用命名查询,因为我的查询基于用户输入进行了大量筛选(不能将where子句放入查询,因为如果用户没有选择任何值,where子句不能只在查询中)。

为了简单点。我需要类似findAll(谓词,Pageable)的东西,但我需要强制查询按“amount*unitPrice”对其进行排序,但也要保持我的Preditate(过滤器)和Pageable(偏移量、限制、其他排序)不受影响。

共有1个答案

薄鸿远
2023-03-14

Springsort只能用于按属性排序,而不能按表达式排序。

但是可以在谓词中创建唯一的排序,因此可以在调用findAll方法之前将这个排序谓词添加到另一个。

 类似资料:
  • 我开始在我的项目中使用primefaces,我马上就遇到了问题。我有一个列表,其中包含一些我用实体管理器从数据库中获取的东西,我在primefaces数据表的视图中显示了它。在我的后台bean中,我有:List getList(),在这里我使用实体管理器从数据库中检索记录,并立即返回。。 和myService: 我的豆子: 视图: 这种方式primefaces排序不起作用,我在堆栈上的某个地方读到

  • 我使用的是Spring数据JpaRepository,我发现它非常容易使用。我实际上需要所有这些功能——分页、排序、过滤。不幸的是,有一件令人讨厌的事情似乎迫使我退回到普通JPA的使用上来。 我需要按关联集合的大小订购。例如,我有: 我必须按bes排序。size() 是否有办法以某种方式自定义排序,仍然利用分页、过滤和其他Spring Data的强大功能?

  • 我想排序结果从数据库由几个colum。我这样尝试: 但它只按名称排序。如何在按名称排序后添加按视图排序。

  • 我有以下数据框架(这里是样本): 我想按时间戳列排列,但我收到以下错误: arrange_impl错误(。data,dots):参数1是不支持的矩阵类型 请建议如何使其工作。我知道时间戳是一个函数和矩阵,但这里它是一个列,我“希望”“理解”它是一列。 正如@sotos所问:

  • 我有一个使用Spring Boot 1.5.1和Spring Data Rest的数据库服务。我将我的实体存储在MySQL数据库中,并使用Spring的PagingAndSorting Repository通过REST访问它们。我发现这表明支持按嵌套参数排序,但我找不到按嵌套字段排序的方法。 我有以下课程: 例如,当使用该方法时: 并调用 URI http://localhost:8080/peo

  • 我正在生成1和0的数据帧,如下所示: 由reprex软件包(v0.1.1.9000)于2018-01-08创建。 我需要按变量的总和升序排列,然后按每个变量的降序排列。使用相当简单。然而,我想有一个更稳健的安排方法。例如,如果更改为,那么最后一行也必须更改为。我尝试使用整齐的选择器进行排列,就像使用函数一样,但出现以下错误: 由reprex软件包(v0.1.1.9000)于2018-01-08创建