Okay, I was wrong about the query returning no results. It returns all rows for the collection. But the Boolean and String fields I'm interested in that are returned in the query are null
Code:
select changerule0_.RULE_LIST as RULE1_1_,
changerule0_.CHANGE_RULE as CHANGE2_1_,
changerule0_.SORT_ORDER as SORT3_1_,
changerule1_.ID as ID0_0_,
changerule1_.version as version0_0_,
changerule1_.CHANGE_RESTRICTION_LIST as CHANGE1_53_0_,
changerule1_.name as name54_0_,
changerule1_.DEFAULT_LIST as DEFAULT2_54_0_,
changerule1_.REPLACE_STRING as REPLACE1_56_0_,
changerule1_.SEARCH_STRING as SEARCH2_56_0_,
changerule1_.SEARCH_STRING as SEARCH1_59_0_,
changerule1_.REPLACE_STRING as REPLACE2_59_0_,
changerule1_.clazz_ as clazz_0_
from XCL_RULE_LIST_ELEMENTS changerule0_
left outer join ( select
null as DEFAULT_LIST,
null as REPLACE_STRING,
CHANGE_RESTRICTION_LIST,
null as name,
null as SEARCH_STRING,
ID,
version,
23 as clazz_
from XCL_CHANGE_RULE
union select
DEFAULT_LIST,
null as REPLACE_STRING,
CHANGE_RESTRICTION_LIST,
name,
null as SEARCH_STRING,
ID,
version,
24 as clazz_
from XCL_CHANGE_RULE_LIST
union select
null as DEFAULT_LIST,
REPLACE_STRING,
CHANGE_RESTRICTION_LIST,
null as name,
SEARCH_STRING,
ID,
version,
25 as clazz_
from XCL_REPLACE_REG_EXP_RULE
union select null
as DEFAULT_LIST, REPLACE_STRING, CHANGE_RESTRICTION_LIST, null
as name, SEARCH_STRING, ID, version, 26
as clazz_
from XCL_REPLACE_STRING_RULE ) changerule1_ on changerule0_.CHANGE_RULE=changerule1_.ID
where changerule0_.RULE_LIST=13019;
In the first union I can see "null as DEFAULT_LIST" and "null as name" which seem to be causing the problem. If I remove this first union (it's an empty table anyway), I get the values I want when I run the query.
I don't know how unions work in this SQL. I know columns have to be of the same type, but shouldn't the named column without the "null as" override the "null as" column earlier declared?
I'm hoping there's someone who understands SQL here and who can understand my explanation. Hopefully I'm not barking up the wrong tree!