一尘不染

带接口的Hibernate HQL

hibernate

根据Hibernate文档的这一部分,我应该能够查询HQL中的任何Java类。

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-
polymorphism

不幸的是,当我运行此查询时…

"from Transaction trans where trans.envelopeId=:envelopeId"

我收到消息“ [未映射事务[从事务trans,其中trans.envelopeId =:envelopeId]”。

事务是一个接口,我必须实现它的实体类,我想在HQL查询中返回事务类型的集合。


阅读 246

收藏
2020-06-20

共1个答案

一尘不染

实际上,根据有关多态查询的Hibernate文档:

hibernate查询可以在from子句中命名任何Java类或接口。该查询将返回扩展该类或实现该接口的所有持久类的实例。以下查询将返回所有持久对象:

from java.lang.Object o

接口Named可以由各种持久性类实现:

from Named n, Named m where n.name = m.name

但是由于接口未映射(因此未知),因此需要在HQL查询中使用完全限定名称:

from qualified.name.Transaction trans where trans.envelopeId=:envelopeId

返回实现您的Transaction接口的所有持久类的实例。

2020-06-20