Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 使用Spring ExampleMatcher处理数字_Spring Mvc_Jpa_Numbers_Primitive_Query By Example - Fatal编程技术网

Spring mvc 使用Spring ExampleMatcher处理数字

Spring mvc 使用Spring ExampleMatcher处理数字,spring-mvc,jpa,numbers,primitive,query-by-example,Spring Mvc,Jpa,Numbers,Primitive,Query By Example,我不熟悉Java和Spring,我正在使用SpringJPA构建一个系统。我现在正在处理我的服务和控制器类,我想创建一个动态查询。我创建了一个表单,用户可以在其中的字段中输入值,也可以将其留空。然后,我使用示例匹配器创建一个基于非空字段的示例,并查询数据库中匹配对象非空字段的对象 如果用户输入的数字与数据库中的数字匹配,那么它可以处理字符串,也可以处理数字。我想问社区的是:我们如何使用Spring ExampleMatcher添加逻辑,以便与数字相关的查询不是从project.return=10

我不熟悉Java和Spring,我正在使用SpringJPA构建一个系统。我现在正在处理我的服务和控制器类,我想创建一个动态查询。我创建了一个表单,用户可以在其中的字段中输入值,也可以将其留空。然后,我使用示例匹配器创建一个基于非空字段的示例,并查询数据库中匹配对象非空字段的对象

如果用户输入的数字与数据库中的数字匹配,那么它可以处理字符串,也可以处理数字。我想问社区的是:我们如何使用Spring ExampleMatcher添加逻辑,以便与数字相关的查询不是从project.return=10的项目中选择*,而是从project.return>=10的项目中选择*

这是一个相当基本的问题,但我在网上到处找,找不到答案。我找到的所有资料都说ExampleMatcher只处理字符串,但我觉得奇怪的是,如此强大的系统没有逻辑来处理高于/低于数字类型的标准

我的示例匹配器代码:

    ExampleMatcher matcher = ExampleMatcher.matching()
            .withIgnoreNullValues()
            .withIgnoreCase()
            .withIgnorePaths("projectId", "businessPlans", "projectReturn", "projectAddress.addressId")
我想补充一下:

.withMatcher("projectAmountRaised", IsMoreThan(Long.parseLong()));
我本想拥有的,但它已被弃用:

public static List getStockDailyRecordCriteria(Date startDate,Date endDate,
        Long volume,Session session){

Criteria criteria = session.createCriteria(StockDailyRecord.class);
if(startDate!=null){
        criteria.add(Expression.ge("date",startDate));
}
if(endDate!=null){
        criteria.add(Expression.le("date",endDate));
}
if(volume!=null){
        criteria.add(Expression.ge("volume",volume));
}
criteria.addOrder(Order.asc("date"));

return criteria.list();
  }
因此,我正在寻找类似的东西。。。我可以使用ExampleMatcher从字符串标准创建一个广泛的结果列表,然后编写自己的逻辑来删除不符合数字标准的对象,但我相信有一种更优雅的方法


非常感谢你的帮助和纵容

你找到这个问题的解决方案了吗?不,我只是实现了我自己的解决方案:我使用examplematcher搜索字符串,将其设置为忽略所有其他字段(使用.WithIgnorePath());然后我使用if函数从列表中删除与我的其他条件不匹配的结果。。。