JPA-Criteria选择的NoResultException的有用附加输出

时间:2012-07-09 11:23:04

标签: jpa-2.0 criteria-api

每当JPA2中的CriteriaQuery没有产生结果时,就会抛出NoResultException。从某种意义上讲,这个异常并不是非常有用,因为只有抛出异常的行号的上下文信息可能会给出一些错误指示。

我想有一些发言输出“寻找一类类型和限制适用于哪里和”。看起来,CriteriaQuery对这些信息非常害羞,但看起来,通过反射和getter方法的组合,我最终会得到我想要的所有信息,但它会非常混乱和麻烦。

是否有更好的方法来检索数据,这些数据已进入CriteriaQuery - 对象?

1 个答案:

答案 0 :(得分:0)

只要您坚持使用JPA API,就可以获得CriteriaQuery的公共接口。

如果您准备好了特定于实现并使用Hibernate实现,可以通过将其转换为org.hibernate.ejb.CriteriaQueryImpl来获得更多可用内容。例如,render方法似乎提供了对具有getQueryString方法的嵌套类的访问。

很可能从其他JPA实现中可以找到一些类似的方法。