检查休眠命名查询中是否存在特定命名参数

Check if a specific named parameter exists or not in hibernate named query

我正在尝试开发一个应用程序,其中我有一个通用的 DAO 作为 EntityDao。

class 有一个方法 executeNamedQuery 如下。

public List executeNamedQuery(String queryName) {
        Query query = getHibernateUtil().getCurrentSession().getNamedQuery(queryName);
        list = query.list();
        return list;
}

我在不同的 classes 中有几个命名查询。举例如下。

@NamedQueries({
    @NamedQuery(
    name = "BookList",
    query = "FROM Book AS B WHERE cntrl1=:CNTRL_1"
    )
}) 

还有一些查询没有 where 子句,或者有些查询有 where 子句但没有 CNTRL_1 作为命名参数。

我有一个通用的 CNTRL_1 值,我想通过带有 setParameter 的通用 EntityDao executeNativeQuery 方法来设置它。但在此之前,我想确定在命名查询中是否存在名称为 CNTRL_1 的命名参数。

怎么做?请帮忙

你试过了吗getNamedParameters()