我有一个存档数据库,其中有两个具有相同结构的表,EvntSumaryT是活动的,ArchiveEvntSumaryT是存档的。我想更改我当前的标准api代码,该代码仅查询EvntSumary,以便它将根据用户选择的日期从两个表中获取数据,并将结果返回到列表中。 我的问题是它们在hibernate-criteria中没有Union功能,那么我怎么能一次查询两个表并将结果合并到一个列表中?
以下是我的jpa实体类的代码。我已将活动表的实体设置为父类,将子设置为ArchiveEvntSumaryT,因为它们共享相同的字段,因此会扩展它。
@Entity
@Table(name="EVNT_SUMARY_T")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class EvntSumaryT {
//fields
//getters and setters
}
@Entity
@Table(name="ARCHIVE_EVNT_SUMARY_T")
public class ArchiveEvntSumaryT extends EvntSumaryT {
}
这是我在归档数据库之前在DAO类中的标准api查询。
public List<EvntSumaryT> getAllTransaction(SearchCriteria sb) {
//criteria
return ls;
}
如何查询两个表并将结果返回到没有Union函数的列表中?
答案 0 :(得分:1)
我明白了。我没有使用inhertance来替换union函数,而是最终在数据库中创建了一个视图,它是两个表的并集,并将实体映射到视图。