根据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查询中返回事务类型的集合。
实际上,根据有关多态查询的Hibernate文档:
hibernate查询可以在from子句中命名任何Java类或接口。该查询将返回扩展该类或实现该接口的所有持久类的实例。以下查询将返回所有持久对象: from java.lang.Object o 接口Named可以由各种持久性类实现: from Named n, Named m where n.name = m.name
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接口的所有持久类的实例。
Transaction