使用Hibernate请求和寻呼多个不相关的实体类型

bvu*_*laj 6 java pagination hibernate hql criteria

我有一个奇怪的业务要求.

我们有多个不相关的实体类型需要显示在一个统一的列表中,其中包含来自实体的一些基本信息,按照它们都保证的唯一字段排序,DATE.这些实体可能甚至可能不在同一个数据库中.结果集需要是可分页的.

有没有可行的方法通过Criteria,HQL或一些理智的手段实现这一目标?

Tom*_*icz 4

通常,您会让所有这些类扩展公共基类并使用多态 Hibernate 查询。从你的描述来看这似乎不可行。

当然,如果你想采用 Hibernate 方式,你必须首先获取每个不相关表的大小,确定请求页面中的记录位于哪个表中(或者可能位于多个表中),然后手动获取正确的页面。这确实很麻烦,绝对应该隐藏在一些深层的 DAO 下。

看起来唯一明智的解决方案是使用旧式 SQL,并将UNION本机查询映射到域对象。Hibernate 很好地支持本机查询。