如何使用自定义函数和选定值将StringPath转换为DatePath?
我想在自定义谓词中使用数据库中的值,如下所示
public static Predicate hasBirthdateGreaterOrEqual(String from) {
//how to convert this to String and pass to PeselParser(String value)
StringPath peselValue = QEmployee.employee.employment.person.peselValue;
LocalDate employeeDate = new PeselParser(peselValue).getDate();
DateExpression<LocalDate> expression = DateTemplate.create(LocalDate.class, from);
return expression.goe(employeeDate);
}
答案 0 :(得分:3)
使用DateTemplate
的{{1}}方法。根据您的RDBMS,您将要更改以下create(Class<T> type, String template, Object one)
字符串。我以Oracle为例:
template
我看到你正在使用版本3语法。 Querydsl 4已经出现了一段时间了。我考虑升级。我们已经为一个大型报告项目做了它,实际上并没有太痛苦。在querydsl 4中,我相信你会使用DateTemplate.create(LocalDate.class, "TO_DATE({0}, 'DD/MON/YYYY')", from);
。