Java Criteria 查询金额范围,无论金额符号如何

标签 java mysql jpa persistence criteria-api

我想根据金额范围对数据库数据进行搜索,有一些金额项也是负数。但无论有什么迹象,我都想使用 javax.persistence.criteria 将我的标准应用于实际金额。

例如查询输入:1 到 100 之间

预期输出:-99 ,-10 , 33 ,90 100

有人可以指导我吗?

最佳答案

SQL查询:

select * from table where abs(cast(amount as decimal(10,2))) between 1 and 700

条件查询:

final List<Predicate> predicates = new ArrayList<>();
Predicate matchPrice = cb.between(cb.abs(trxRoot.get("amount").as(BigDecimal.class)), minPrice, toAmount);
predicates.add(matchPrice);
query.where(predicates.toArray(new Predicate[] {}));

关于Java Criteria 查询金额范围,无论金额符号如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44065700/

相关文章:

java - 对于生产者-消费者模式哪种实现更好 : ArrayBlockingQueue or Arraylists with Exchangers

php - 尝试在 Laravel 中使用循环联合语句

spring - Joda 时间和 hibernate 4

java - 如何平滑地执行放大和缩小以及在 TEXTVIEW 上的特定缩放位置进行缩放?

java - BNF 语法模仿 Java 方法声明

java - 如何使用 Selenium、Java 从 div 元素中获取文本?

使用JPA的GWT

MySQL - 保存和加载项目的最佳方法

c# - 如何获取两列的内容并显示出来?

java - 在 Hibernate Search 3.3.0 Final 中索引 PDF 不起作用