Это зависит от базы данных. У большинства есть какой-то способ обработки арифметики даты. В MySQL есть функция datediff, которая будет возвращать количество дней, чтобы вы могли поделить это на 365 и приблизиться. Диалект MySQL уже имеет datediff как зарегистрированную функцию. Для других баз данных вам может понадобиться использовать другие функции и, возможно, зарегистрировать их на собственном диалекте. Но, возможно, вы немного расстроитесь, если не будете учитывать високосные годы, что сложно в выражении HQL. Использовать даты проще, потому что вы можете сохранить месяц и день постоянными, изменить год, а затем использовать <или> в HQL.