springside4做时间段查询有没有轻便的方式?

爱折腾 发布于 2012/11/21 01:42
阅读 1K+
收藏 0

SpringSide4的DynamicSpecifications.bySearchFilter貌似不能处理Date类型字段的查询。

页面用了search_GTE_dateField,后台报错:org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type java.util.Date for value '2012-11-16';

有没有比较优雅的方式解决这个问题?求教!

加载中
0
爱折腾

发现问题所在:

if (!attributeClass.equals(String.class) && filter.value instanceof String
&& conversionService.canConvert(String.class, attributeClass))
{
filter.value = conversionService.convert(filter.value, attributeClass);
}

这里的conversionService,没有StringToDate的conveter

另外还发现SearchFilter设计上的一bug,使它不能支持范围查询。

public static Map<String, SearchFilter> parse(Map<String, Object> searchParams) 

此函数的返回值是Map类型,这使得一个字段只能有个查询条件。多的都被覆盖了。


0
路边的石头
路边的石头

遇到了相同的问题, 求大家的解决思路 ,  @江南白衣

0
wcyong
wcyong

我也遇到同样的问题,求解决思路

0
b
bqw_5189

使用jpa

Page<SignIn> findByUserIdAndSignInTypeAndSignInDateBetween(Long userId,String signType,Date start, Date end, Pageable pageRequest);

返回顶部
顶部