如何使用休眠条件api执行联合子句查询

Min*_*esh 3 hibernate

SELECT 
    supplier_id  FROM suppliers   UNION ALL 

SELECT     supplier_id  FROM orders;
Run Code Online (Sandbox Code Playgroud)

我只是在查询的“ UNION ALL”子句上方和查询的“ UNION ALL”子句上方创建两个条件。

但是我的问题是我如何在条件中执行UNION ALL子句?提前致谢。

Nul*_*ull 5

我认为休眠不支持条件,UNION ALL但是您可以使用两个条件查询来获得预期的结果:

Criteria cr1 = session.createCriteria(Suppliers.class);
 cr1.setProjection(Projections.projectionList()
    .add( Projections.property("supplier_id"), "supplier_id" )
 );
List results1 = cr1.list();

Criteria cr2 = session.createCriteria(Orders.class);
 cr2.setProjection(Projections.projectionList()
    .add( Projections.property("supplier_id"), "supplier_id" )
 );
List results2 = cr2.list();

results1.add(results2); 

List unionAllList =  results1; //this is the expected result.
Run Code Online (Sandbox Code Playgroud)

  • 遗憾的是它没有解决 `ORDER BY` 问题,因为你可以使用 `ORDER BY` 和 `UNION`(适用于联合的所有结果),但不能使用这个标准技巧。 (2认同)