QueryDSL:格式化字符串的 DateTimePath

Ser*_*niy 5 java date jpql querydsl

我需要在 querydsl 中使用“like”将日期与字符串进行比较。所以我需要将 datetimepath 转换为特定格式的字符串。就我而言,它是“MM/dd/yyyy”,类似这样的内容:

String dateString = "%20/2015%";
QueryBase whereClause = query.where(myEntity.date.toString("MM/dd/yyyy").like(dateString));
Run Code Online (Sandbox Code Playgroud)

myEntity.date 是否有DateTimePath<java.util.Date> 任何想法如何将其表示为字符串?

Ser*_*niy 4

我发现的唯一解决方案是使用本机函数(在我的例子中是 MySql)。像这样的东西:

Expressions.stringTemplate("DATE_FORMAT({0}, {1})", myEntity.date, "%m/%d/%Y")
           .likeIgnoreCase(dateString);
Run Code Online (Sandbox Code Playgroud)