-1

我有我想在标准(休眠)中执行的 SQL 代码,但我遇到了麻烦。我的目标是在 Criteria 中执行此 SQL 代码:

SELECT * FROM 
             (
              SELECT 'B', D.* 
              FROM table_view1 D 

              UNION 

              SELECT 'S', D.* 
              FROM table_view1 D
              ) 
WHERE dbkey = 1;

我怎样才能做到这一点?

4

2 回答 2

1

你有两个选择:

  • 使用原生 SQL 查询
  • 重写您的查询,使其不使用联合,因为 Criteria API 不支持UNION.
于 2013-04-30T14:04:47.303 回答
0

您必须为子查询使用 ALIAS 才能在外部查询 WHERE 子句中访问属于它的列

SELECT * FROM 
             (
              SELECT 'B', D.* 
              FROM table_view1 D 

              UNION 

              SELECT 'S', D.* 
              FROM table_view1 D
              ) Z
WHERE Z.dbkey = 1;
于 2013-04-30T13:37:23.460 回答