首页 > 解决方案 > 如何解决:无法构建 Hibernate SessionFactory 原因:org.hibernate.HibernateException:命名查询中的错误

问题描述

我有一个命名查询

@NamedQuery(name = "Notification.findByyoungngAndInstNum",
        query = "SELECT n FROM Notification n WHERE n.institutionsregister.institutionnumber = ?1 and n.young is not null and n.date is null")

我想在我想添加年龄 >=25 岁的地方添加一个额外的检查

我试过这个

SELECT n FROM Notification n WHERE n.institutionsregister.institutionnumber = ?1 and n.young is not null and age(current_date, n.young.dob) >= (interval '25' year)) and n.date is null

但是在 jboss 中部署时出现错误。(无法构建 Hibernate SessionFactory 原因:org.hibernate.HibernateException:命名查询中的错误)

表名是:Notification ,Institutionregister 它具有字段机构编号,Young 表具有字段dob(出生日期)。

无法弄清楚如何构图。

标签: hibernatenamed-query

解决方案


这是另一种解决方案,试试这个

Calendar calendar = Calendar.getInstance();
      calendar.add(Calendar.YEAR, -25);
      Date dt =  calendar.getTime(); // use this as query argument, it can be dynamic


  SELECT n FROM Notification n WHERE n.institutionsregister.institutionnumber = ?1 and n.young is not null and n.date is null and n.young.dob < = ?2 

推荐阅读