Spring mvc 使用Spring ExampleMatcher处理数字
我不熟悉Java和Spring,我正在使用SpringJPA构建一个系统。我现在正在处理我的服务和控制器类,我想创建一个动态查询。我创建了一个表单,用户可以在其中的字段中输入值,也可以将其留空。然后,我使用示例匹配器创建一个基于非空字段的示例,并查询数据库中匹配对象非空字段的对象 如果用户输入的数字与数据库中的数字匹配,那么它可以处理字符串,也可以处理数字。我想问社区的是:我们如何使用Spring ExampleMatcher添加逻辑,以便与数字相关的查询不是从project.return=10的项目中选择*,而是从project.return>=10的项目中选择* 这是一个相当基本的问题,但我在网上到处找,找不到答案。我找到的所有资料都说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
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函数从列表中删除与我的其他条件不匹配的结果。。。