【问题标题】:How to check at runtime if a NamedNativeQuery was declared如何在运行时检查是否声明了 NamedNativeQuery
【发布时间】:2017-09-29 12:59:38
【问题描述】:

在 Hibernate 中,有没有办法在调用之前检查给定的 @NamedNativeQuery 是否存在: Session.getNamedQuery("queryName");

我是在运行时编写查询的名称,所以我需要一种方法来查找它是否存在,以避免出现以下异常:

MappingException:命名查询未知:queryName

【问题讨论】:

    标签: java hibernate named-query


    【解决方案1】:

    使用方法getNamedParameters()检查查询的所有命名参数的名称。

    更新:目前检查具有给定名称的命名查询是否存在的唯一方法是调用 EntityManager.createNamedQuery(…) 。查询不存在可以通过抛出异常来表示。

    【讨论】:

    • 我需要检查是否声明了@NamedNativeQuery,而不是参数
    • @NamedNativeQuery/@NamedNativeQueries注解可以吗?它在运行时可用。虽然是一个 hacky 解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2019-07-16
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多