Not so much specific tools that require a case-insensitive mapping; mostly just when I'm
working with a command line interface.
e.g., I don't want to be typing select "COL_A", "COL_B" from "TABLE_A" with quotes all
over the place when I'm writing ad-hoc queries in PostgreSQL.
Using lowercase when specifying the autogenerated ID column works for H2 and PostgreSQL.
PostgreSQL driver is now being passed id which it quotes as "id" matching the name in its
schema. H2 is being passed id which presumably is being used unquoted by the H2 driver
and thus folded to uppercase which matches the name in its schema.
I don't currently use MySQL but if its case sensitive then I'd be back with a similar problem
that I have for PostgreSQL! In which case the only uniformly workable solution would be to
pass identifiers of different case to MapperDao (and any other library) based on the taret
database.
Perhaps a class along the lines of the Scala s"somestring" string implementation; I'll have to
look at how this is done. Good chance to improve my knowledge of Scala internals.
Or alternately, is there somewhere I can hook in to / override where MapperDao passes the
ID column to the driver so that I can force the column names specified by the application
code to lowercase if the database is PostgreSQL? This would allow me to put that logic in
one place rather than in each entity class definition. Would be a more MapperDao only
solution but completely hidden in the framework rather than relying on application code
to use the "special string" class for identifier names.