变换一条SQL语句准则与UNION

变换一条SQL语句准则与UNION

问题描述:

我有我想要的标准(休眠)做SQL代码,但我与它有麻烦。我的目标是在标准中执行此SQL代码:变换一条SQL语句准则与UNION

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

       UNION 

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

我该如何做到这一点?

+0

请不要[转贴](http://*.com/questions/16279384/hibernate-union-in-criteria)。 – eldarerathis 2013-05-01 14:28:49

你将不得不使用别名,那么子查询访问的列属于它的外查询的WHERE子句

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

       UNION 

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

请你能在准则为我写的代码,请..由于图4天,我尝试做bbut我不能 – user1814879 2013-04-30 13:43:53

你有两个选择:

  • 使用原生SQL查询
  • 重写您的查询,以便它不使用联合,因为Criteria API不支持UNION
+0

好吧,我看..但在我的项目,我无法使用原生SQL查询..我们必须使用Criteria ..所以我不知道我能做什么..如果你是我的查询其他解决方案 – user1814879 2013-04-30 14:06:54

+0

只是好奇心,为什么你不能使用本机SQL? – user902383 2013-04-30 15:53:41

+0

因为我在一个不能使用HQL,SQL Native等的项目中工作。它只是这个项目的一个标准(不要使用HQL,SQL只使用CRITERIA) – user1814879 2013-05-02 07:20:57