Java hibernate动态查询

Java hibernate动态查询,java,hibernate,relational-database,dynamic-sql,Java,Hibernate,Relational Database,Dynamic Sql,我有一个应用程序,我需要让最终用户通过某种类型的向导定义他们的选项来创建临时报告,该向导的过程类似于: 1) User selects the table(s) he wants to query (eg person, project, activities) 2) defines the list of fields he requires (eg name, email, projects, activity, activity info) 3) supplies the filter

我有一个应用程序,我需要让最终用户通过某种类型的向导定义他们的选项来创建临时报告,该向导的过程类似于:

1) User selects the table(s) he wants to query  (eg person, project, activities)
2) defines the list of fields he requires (eg name, email, projects, activity, activity info) 
3) supplies the filter criteria for the records to return (eg Person name, ongoing activities)
我正在使用hibernate和postgres数据库,其中包含100多个表。当然,我不能让用户选择这些表中的任何一个,因为它们毫无意义。但是大约有10个主表(如上面的表)

因此,我需要关于如何:

  • 是否可能以及如何动态定义这些表和它们的其他关系之间的联接和关系
  • 如果不是(或者太复杂),那么预定义这些连接和数据库路径,然后让用户只对过滤器进行参数化的最佳方法是什么
  • 从多个hibernate对象获取数据,然后让用户选择他想要的字段

  • 我非常感谢所有的反馈,如果我没有正确解释需求,请写信。

    您是否有一些好的示例链接,其中使用条件从多个表进行查询(是否可以使用不在父/子关系中的表进行查询)?应该可以使用投影(请以谷歌为例)。然而,Hibernate是一个ORM工具,最好将其用于它的用途——一次只处理一个类,而不是关系表单。强烈建议不要使用链接作为答案。请引用链接页面的特定部分,使其对OP有用。