我有一个 Java 超类 - 消息 - 和 3 个子类 - 问题、报告、更新。对于这 4 个类中的每一个,我都有一个单独的控制器(lister),它使用 Hibernate 从数据库中获取对象。此外,这些控制器中的每一个都为其使用的类添加了一些特定的过滤条件(限制)。ListMessages 可以为 Message 类中的字段添加条件,ListProblems 可以为 Message 字段和问题特定字段添加条件。但是有没有办法使用子类中的字段过滤消息?
例如 Message 有字段内容,Problem 有状态,Report 有 refusalReason(都是 Strings)。我可以按内容过滤所有消息,按内容和状态过滤问题,按内容和拒绝原因过滤报告。但是有没有办法按内容、状态和拒绝原因过滤消息?我需要这个,因为我想要一个所有消息的列表,但能够过滤所有与过滤模式匹配的实际上是状态问题(或带有拒绝原因的报告)的消息。不幸的是,我无法从数据库中获取消息并在 Java 代码中对其进行过滤——它们需要在数据库端进行过滤。