【问题标题】:Hibernate filternig list of objects by its subclass specific fieldsHibernate filternig 对象的子类特定字段列表
【发布时间】:2011-12-21 01:16:01
【问题描述】:

我有一个 Java 超类 - 消息 - 和 3 个子类 - 问题、报告、更新。对于这 4 个类中的每一个,我都有一个单独的控制器(lister),它使用 Hibernate 从数据库中获取对象。此外,这些控制器中的每一个都为其使用的类添加了一些特定的过滤条件(限制)。 ListMessages 可以为 Message 类中的字段添加条件,ListProblems 可以为 Message 字段和问题特定字段添加条件。但是有什么方法可以使用子类中的字段过滤消息吗?

例如 Message 有字段内容,Problem 有状态,Report 有 refusalReason(所有字符串)。 我可以按内容过滤所有消息,按内容和状态过滤问题,按内容和拒绝原因过滤报告。但是有没有办法按内容、状态和拒绝原因过滤消息? 我需要这个,因为我想要一个所有消息的列表,但能够过滤所有与过滤模式匹配的实际上是状态问题(或带有拒绝原因的报告)的消息。 不幸的是,我无法从数据库中获取消息并在 Java 代码中对其进行过滤——它们需要在数据库端进行过滤。

【问题讨论】:

    标签: java hibernate filtering hibernate-criteria


    【解决方案1】:

    我不知道您使用的是哪种休眠查询语言,所以我只回答一般性问题。如果您发布您的查询(语言),我会看看是否可以通过示例更新问题。

    您需要做的是使用左外连接来包含子类,并对每个连接施加额外的限制以包含您想要的过滤。这应该会给您留下想要的消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-31
      • 2012-07-13
      • 2012-01-15
      • 1970-01-01
      • 2022-08-15
      • 2021-09-09
      • 2018-11-10
      相关资源
      最近更新 更多