Mysema QueryDSL如何使用"喜欢"?

时间:2015-12-03 08:47:30

标签: java querydsl

我试图以这种方式使用布尔构建器

BooleanBuilder builder = new BooleanBuilder();

         builder.and(model.record.Id.eq(Id));
         builder.and(model.record.date.like(date));

我想通过忽略时间和小时来获取给定日期的记录,所以我想做一个"喜欢"。但我收到以下错误

  

找不到符号[ERROR]符号:方法如(java.util.Date)   变量日期类型   com.mysema.query.types.path.DateTimePath

有人帮助我如何在mysema中使用?

1 个答案:

答案 0 :(得分:1)

你不应该对日期字段使用LIKE,如果只需要获取字段的日期部分,你应该使用Hibernate的DATE函数来忽略时间戳。

使用QueryDSL,您可以使用QueryDSL的date类中的SQLExpressions方法调用DATE函数。

因此,使用上面给出的解决方案重写您的查询应该看起来接近他的:

BooleanBuilder builder = new BooleanBuilder();

         builder.and(model.record.Id.eq(Id));
         builder.and(model.record.date.eq.(SQLExpressions.date(date)));

另外,请查看此link以获取有关SQLExpressions的更多信息。

祝您好运,并随时向我们提供最新结果!