java - 如何使用 criteria api 查询具有相同结构的两个 SQL 表?

标签 java sql-server hibernate jpa criteria-api

我有一个存档数据库,其中有 2 个具有相同结构的表,EvntSumaryT 处于 Activity 状态,ArchiveEvntSumaryT 处于存档状态。我想更改当前的标准 api 代码,该代码仅查询 EvntSumary,以便它将根据用户选择的日期从两个表中获取数据并将结果返回到列表中。 我的问题是,它们在 hibernate-criteria 中没有 Union 功能,所以我如何能够同时查询两个表并将结果合并到一个列表中?

下面是我的 jpa 实体类的代码。我已将 Activity 表的实体设置为父类,将子类设置为 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 函数的情况下查询两个表并将结果返回到列表中?

最佳答案

我明白了。我最终没有使用继承来替换联合函数,而是在数据库中创建了一个 View ,该 View 是两个表的联合,并将实体映射到 View 。

关于java - 如何使用 criteria api 查询具有相同结构的两个 SQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34001700/

相关文章:

java - 在 for 循环开始时清空 List<String>

sql - 在给定主键的情况下选择大量行

sql-server - 带日期范围的 T-SQL 查询

java - 删除未保存的对象不会引发异常

java - 用于取消多个数组嵌套的 Jooq 表示法

java - 派生类可以减少对父类(super class)私有(private)方法的限制吗?

sql - 如何将架构和一些数据从 SQL Server 复制到另一个实例?

java - JPA 单表层次结构中的 PostgreSQL 标识

java - Hibernate 编程配置不起作用

java - 从 Eclipse 导出 jar 时出现 "Could not find main method from given launch configuration"错误