title: Make Operator WITH from oracle work in hsql database
body: <p>I have a native query that needs to run in HSQL(for in-memory tests) and in Oracle DB (for production), however, the query keyword "RECURSIVE" is required in HSQL database and it is not allowed in oracle. Since i need that both statements run on both engines, there is some common similiar operator?  </p>
  
  <p>The oracle query is: </p>
  
  <pre><code>WITH contexts (ID, CONTEXT_ID, NAME, LABEL_KEY, VERSION, parent_name, parent_id, lev) 
  AS (
    SELECT t1.ID, t1.CONTEXT_ID, t1.NAME, LABEL_KEY, VERSION, NULL AS parent_name, NULL AS parent_id, 1 AS lev
    FROM PIM_CONTEXT t1 WHERE t1.ID =1 
    UNION ALL 
    SELECT t2.ID, t2.CONTEXT_ID, t2.NAME, t2.LABEL_KEY, t2.VERSION, contexts.NAME AS parent_name, contexts.ID AS parent_id, lev + 1 AS lev 
    FROM contexts 
    JOIN PIM_CONTEXT t2 ON t2.context_id = contexts.id 
  ) 
  SELECT ID, CONTEXT_ID, NAME, LABEL_KEY, VERSION, parent_name, parent_id FROM contexts;
  </code></pre>
  
  <p>and the query that has the same output in HSQL is: </p>
  
  <pre><code>WITH contexts recursive (ID, CONTEXT_ID, NAME, LABEL_KEY, VERSION, parent_name, parent_id, lev) 
  AS (
    SELECT t1.ID, t1.CONTEXT_ID, t1.NAME, LABEL_KEY, VERSION, NULL AS parent_name, NULL AS parent_id, 1 AS lev
    FROM PIM_CONTEXT t1 WHERE t1.ID =1 
    UNION ALL 
    SELECT t2.ID, t2.CONTEXT_ID, t2.NAME, t2.LABEL_KEY, t2.VERSION, contexts.NAME AS parent_name, contexts.ID AS parent_id, lev + 1 AS lev 
    FROM contexts 
    JOIN PIM_CONTEXT t2 ON t2.context_id = contexts.id 
  ) 
  SELECT ID, CONTEXT_ID, NAME, LABEL_KEY, VERSION, parent_name, parent_id FROM contexts;
  </code></pre>
  
  <p>I need some alternative that can run over both engines. </p>