This is not possible even using HQL. See This Other SO Post
One way is to return to raw SQL and use a named query
<sql-query name="MyQuery"> <![CDATA[ select col1,col2 from table1 union select col1,colA from table2 ]]> </sql-query>
And use AliasToBeanResultTransformer to convert it back to DTO / POCO
var query = Session .GetNamedQuery("MyQuery") .SetResultTransformer(new AliasToBeanResultTransformer(typeof(MyDto))); return query.List<MyDto>();
Rippo source share