Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate按其子类特定字段筛选对象列表_Java_Hibernate_Filtering_Hibernate Criteria - Fatal编程技术网

Java Hibernate按其子类特定字段筛选对象列表

Java Hibernate按其子类特定字段筛选对象列表,java,hibernate,filtering,hibernate-criteria,Java,Hibernate,Filtering,Hibernate Criteria,我有一个Java超类-消息-和3个子类-问题,报告,更新。对于这4个类中的每一个,我都有一个单独的控制器(lister),它使用Hibernate从数据库中获取对象。此外,这些控制器中的每一个都添加了一些特定于它所使用的类的过滤条件(限制)。ListMessages可以为消息类中的字段添加条件,ListProblems可以为消息字段和问题特定字段添加条件。但是,是否有任何方法可以使用子类中的字段过滤消息 例如,消息有一个字段内容,问题有状态,报告有拒绝原因(所有字符串)。 我可以按内容过滤所有消

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

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

我不知道您使用的是哪种hibernate查询语言,所以我只回答一般问题。如果你发布你的查询(语言),我会看看是否可以用一个例子更新这个问题

您需要做的是使用左外部联接来包含子类,并对每个联接附加一个限制,以包含所需的筛选。这将给您留下所需的消息