0
我有一个班级具有出生日期变量的用户,并且我正在尝试编写一个标准查询来查找所有超过X岁且小于Y的用户,其中X和Y是两个整数,出生日期是日期。休眠条件从出生当天的年龄范围搜索
我使用这个表达式解决了这个问题,但我想避免使用Expression,因为我猜它只能用于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))
任何想法?
我编辑我的第一篇文章。我不能,因为lowAge是一个整数,生日是一个日期。 – LorenzoR
难道你不能将年龄转换为生日吗?应该像'Calendar.getInstance()。add(Calendar.YEAR,-1 * lowAge).getTime()'或其他东西一样简单。或者在数据库中没有进行计算时出现语言环境问题? –