Environment: EclipseLink 2.3.2, PostgreSQL 9.1 on Windows
I'm trying to use the IntegrityChecker. I registered my session customizer and activated the default IntegrityChecker. It complains about missing tables that in reality exist (I also let EcliseLink generate the schema to verify I didn't do something wrong). I debugged it a bit and found that in IntegrityChecker#initializeTables it uses row.get("TABLE_NAME") to read a table name. But this returns null because in the row the key is "table_name".
Then i used my custom IntegrityChecker which "fixes" this, but there's the same issue with column names. They are checked in ClassDescriptor which isn't so easy to change afaik.
I suspect that IntegrityChecker works but my configuration is somehow broken. The PostgreSQLPlatform is set correctly. Any ideas what I could try?
Your database returns column names in lower case, which may also cause problems with native queries if your application uses the defaults for column names since they default to upper case. You can try using the persistence property:
To upper case both sides if you also have native query issues, or just
to have column name metadata returned from the driver put int uppercase.