【发布时间】:2017-09-29 12:59:38
【问题描述】:
在 Hibernate 中,有没有办法在调用之前检查给定的 @NamedNativeQuery 是否存在:
Session.getNamedQuery("queryName");
我是在运行时编写查询的名称,所以我需要一种方法来查找它是否存在,以避免出现以下异常:
MappingException:命名查询未知:queryName
【问题讨论】:
标签: java hibernate named-query
在 Hibernate 中,有没有办法在调用之前检查给定的 @NamedNativeQuery 是否存在:
Session.getNamedQuery("queryName");
我是在运行时编写查询的名称,所以我需要一种方法来查找它是否存在,以避免出现以下异常:
MappingException:命名查询未知:queryName
【问题讨论】:
标签: java hibernate named-query
使用方法getNamedParameters()检查查询的所有命名参数的名称。
更新:目前检查具有给定名称的命名查询是否存在的唯一方法是调用 EntityManager.createNamedQuery(…) 。查询不存在可以通过抛出异常来表示。
【讨论】:
@NamedNativeQuery/@NamedNativeQueries注解可以吗?它在运行时可用。虽然是一个 hacky 解决方案。