我有一个用户类,它有一个出生日期变量,我正在尝试编写一个条件查询来查找所有超过 X 岁且小于 Y 的用户,其中 X 和 Y 是两个整数,出生日期是日期。
我使用这个表达式解决了它,但我想避免使用表达式,因为我猜它只适用于 MySQL。
.createCriteria(User.class)
.add(Expression
.sql("DATE_FORMAT( FROM_DAYS( TO_DAYS( NOW( ) ) - TO_DAYS( BIRTHDATE ) ) , '%Y' ) >= " + lowAge))
.add(Expression
.sql("DATE_FORMAT( FROM_DAYS( TO_DAYS( NOW( ) ) - TO_DAYS( BIRTHDATE ) ) , '%Y' ) <= " + highAge))
有任何想法吗?