spring-in-action-6-samples
spring-in-action-6-samples copied to clipboard
Define a table name for the class User
Hi,
when you use the class /taco-cloud-sfc/src/main/java)/tacos/User.java with a h2 db, this could run into an issue with the h2-Usertable "User" like this:
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax Fehler in SQL Befehl "drop table if exists [*]user CASCADE "; erwartet "identifier"
Syntax error in SQL statement "drop table if exists [*]user CASCADE "; expected "identifier"; SQL statement:
drop table if exists user CASCADE [42001-210]
Spring cannot create the data-table.
I solved this issue with an annotation for the table:
...
@Table(name="TACO_USER")
public class User implements UserDetails {
...
This solves the issue with the h2 database and the apps starts fine.
One could also update the application.yml file to (check jpa.properties.hibernate)
spring:
datasource:
generate-unique-name: false
name: tacocloud
h2:
console:
enabled: true
jpa:
properties:
hibernate:
"[globally_quoted_identifiers]": true
"[globally_quoted_identifiers_skip_column_definitions]": true
Thank you so much!