I need to add an interval to a date (both columns are in a table) using MySQL and JPA Criteria. I know the following functions are required:
MySQL's DATE_ADD:
DATE_ADD(date,INTERVAL expr unit)
CriteriaBuilder's function:
function(String name, Class<T> type, Expression<?>... args)
I also have a class to create function expressions:
public class SqlFunctionExpression extends BasicFunctionExpression<String> implements Serializable {
public SqlFunctionExpression(CriteriaBuilderImpl criteriaBuilder,
Class<String> javaType,
String functionName) {
super(criteriaBuilder, javaType, functionName);
}
@Override
public String render(RenderingContext renderingContext) {
return getFunctionName();
}
}
which can be used like new SqlFunctionExpression(null, String.class, "MINUTE") to create a minute unit.
However, how do I create the expression INTERVAL expr unit where expr is a table column?