We upgraded to Hibernate 6.1.7 and it broke our application. We use Oracle, and some tables have name following such format “NAME*$*NAME” Previously Hibernate didn’t try to quote it’s name, it only lowercased it, so it worked fine. But after adding quoteOnNonIdentifierChar flag to org.hibernate.boot.model.naming.Identifier methods, it tries to quote it because the name contains ‘$' char org.hibernate.boot.model.naming.Identifier:112. So query ends up with lowercased and quoted table name, and Oracle can’t recognize such table. After investigation I found that it was caused by this commit: https://github.com/hibernate/hibernate-orm/commit/cbcec73d4fa4ca0845d0f8ca620dcdc02cd91b17 The worst is user has no control over this flag, and can’t disable this behavior. Currently we found workaround by extending CamelCaseToUnderscoresNamingStrategy and overriding isCaseInsensitive to return false (instead of hardcoded true), so quoted table name works because it is not lowercased. |