gpt4 book ai didi

java - 如何在 Hibernate 中执行非多态 HQL 查询?

转载 作者:IT老高 更新时间:2023-10-28 21:11:50 25 4
gpt4 key购买 nike

我使用的是 Hibernate 3.1.1,特别是,我使用的是 HQL 查询。

根据documentation , Hibernate 的查询是多态的:

A query like: from Cat as cat returns instances not only of Cat, but also of subclasses like DomesticCat.

如何查询 Cat 的实例,而不是它的任何子类?

我希望能够做到这一点,而不必明确提及每个子类。

我知道以下选项,但不满意:

  1. 在查询后手动过滤实例,或者:
  2. 在鉴别器列上手动添加 WHERE 子句。

Hibernate 允许用户决定查询是否应该是多态的是有意义的,但我找不到这样的选项。

提前致谢!

最佳答案

class mapping 中使用 polymorphism="explicit" .这将导致查询只返回命名类的实例,而不是它的子类。

Implicit polymorphism means that instances of the class will be returned by a query that names any superclass or implemented interface or class, and that instances of any subclass of the class will be returned by a query that names the class itself. Explicit polymorphism means that class instances will be returned only by queries that explicitly name that class.

关于java - 如何在 Hibernate 中执行非多态 HQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2093025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com