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

Par*_*osh 5 java hibernate named-query

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

该类有一个方法 executeNamedQuery,如下所示。

public List executeNamedQuery(String queryName) {
        Query query = getHibernateUtil().getCurrentSession().getNamedQuery(queryName);
        list = query.list();
        return list;
}
Run Code Online (Sandbox Code Playgroud)

我在不同的类中有几个命名查询。下面给出一个例子。

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

Aslo 一些查询没有那个 where 子句,或者其中一些查询有一个 where 子句但没有 CNTRL_1 作为命名参数。

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

怎么做?请帮忙。

Bet*_*sta 3

您已经尝试过getNamedParameters()了吗?