当前位置: 首页 > 面试题库 >

带接口的Hibernate HQL

斜淳
2023-03-14
问题内容

根据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

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

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

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



 类似资料:
  • 问题内容: 我有一个来自客户端的对象,并自动从Web Api 2反序列化。 现在,我对模型的一个属性有疑问。此属性“ CurrentField”的类型为IField,此接口有2种不同的实现。 这是我的模型(只是一个假人) 我试图创建一个自定义的JsonConverter来查找来自客户端的对象是什么类型(Field1或Field2),但是我只是不知道如何。 我的Converter被调用,当我调用va

  • 问题内容: 我已经实现了ListSelectionListener,如下所示,因此在选择了第一个表中的特定行之后,第二个表将进行相应的更新。 有没有一种方法不仅可以在选择鼠标时,而且可以在通过键盘进行选择时调用侦听器? 问题答案: 出现异常体验的原因-没有通过键盘选择的通知-是valueIsAdjusting针对键盘与鼠标触发的选择事件的微妙不同设置: 键盘触发的选择(即使带有修饰符)仅触发一次(

  • 我有一个DAO接口,其中有多个实现,我希望其中一个是Room实现(Kotlin):

  • 问题内容: 有没有理由不将Controller映射为接口? 在所有的示例和问题中,我看到了周围的控制器,都是具体的类。是否有一个原因?我想将请求映射与实现分开。但是,当我尝试在具体类中获取a 作为参数时,我碰壁了。 我的Controller界面如下所示: And the implementing class: 该方法效果很好;在抛出一个异常 如果我将注释添加到具体类中,那么一切都会按预期工作,但是