A short note, for the purpose of seeding Google1 with some useful information:
If you find yourself trying to debug why MySQL’s JDBC driver might be raising a
“Column ‘e.Name’ not found” exception resulting from a call to
ResultSet.findColumn, you might look into the MySQL Connector/J
configuration reference and find the interesting-looking
dumpMetadataOnColumnNotFound property, described therein as “Should the
driver dump the field-level metadata of a result set into the exception message
when ResultSet.findColumn() fails?”
The documentation says that this property is available “since version 3.1.13”.
The documentation lies.
It turns out that
dumpMetadataOnColumnNotFound was introduced in
Connector/J 3.1.13, but only to the 3.1.x branch — it doesn’t appear that
it made it into any later version in any other branch.
As to why you might be running into this problem in the first place: it looks like there was a bug / change in behaviour (delete as appropriate) introduced in either MySQL server 5.something or Connector/J 5.something (details are unclear) such that after issuing a query like this:
SELECT a1.col1 AS data FROM TableA AS a1, TableA AS a2
ResultSet.getString("a1.col1") no longer works — in this case, you
need to use
ResultSet.getString("col1"), but the right column name to use
differs depending on the original query: in some cases the first option might
Did I mention how much I dislike MySQL recently?
Other search engines are available. ↩