A keyword has predefined SQL syntax or semantics, so using it as an unquoted table or column identifier can make generated SQL invalid. The entity User therefore maps explicitly to USERS instead of USER. section 5.3.1
Handle keyword collisions through explicit naming or identifier quoting:
- Override the default table name with @Table(name = "USERS"); this is generally the clearest mapping when the schema can be changed. section 5.3.1
- Enable Hibernate automatic keyword quoting with hibernate.auto_quote_keyword=true when the configured database dialect identifies the reserved name. section 5.3.1
- Quote names manually when dialect information is incomplete; Hibernate accepts backticks, while JPA 2.0 standardizes delimited identifiers with double quotes. section 5.3.1
See the concrete @Table mapping that changes the problematic USER table name to USERS. section 5.3.1


