My Setup
- Spring boot 2.7.3
- in memory H2 DB with
- DATABASE_TO_UPPER=false in JDBC URL
- SQL script to init DB (schema, table, etc.)
Issue descriptionTo reproduce the bug I've prepered minimal project - https://github.com/tfij/h2sequenceBug The issue is with Sequence. I create a sequence by SQL:
And use the sequence in an entity class:
When I start the application then there is an error from hibernate caused by
In the H2 DB, there is a SEQUENCE_NAME column, not a sequence_name. All columns are in upper case. When downgrade spring boot to 2.5 then there is no error. Full stacktrace
Workaround
- change the DATABASE_TO_UPPER property to true (from the documentation: DATABASE_TO_UPPER (default: true). When set to true unquoted identifiers and short name of database are converted to upper case.)
- Wrap all identifiers in annotations (@Table, @Column, @SequenceGenerator etc), native query in repository, SQL scripts with quotation, eg. change @Table(name = "Sample", schema = "Master") to @Table(name = "[Sample]", schema = "[Master]").
|