Recently I've got the following error during SQL named query execution:
SQL Error: 17006, SQLState: null Invalid column name
In order to track the problem down I enabled SQL logging and collected SQL query issued, then run it under SQL monitor and ... it was working without error! I was surprised.
In order to debug what's going on I enabled detailed logging in Hibernate. What was happened then?
[INFO] could not read column value from result set: entityKey215_0_; Invalid column name
This message showed me that the problem was not related to generated SQL query but to column names expected by Hibernate. Generated recordset didn't has entityKey215_0_ column. I added:
entityKey AS {list.entityKey}
to named SQL query and error dissapeared.
This error is not-very-obvious kind of error because Oracle hides column / table names in error messages returned. Why? I don't get this cryptic error messages idea. In order to track an error under Oracle I had to enable verbose logging (error message standalone din't give anything useful). Much simpler database MySQL has better error reporting than "fat" Oracle.