У меня есть такой POJO (Groovy)
class User {
@Column(name = 'Username')
String username
@Column(name = 'EmailAddress')
String emailAddress
}
Ничто из того, что я делаю, не заставляет JPA генерировать такую схему:
create table User (
Username varchar(64),
EmailAddress varchar(64)
)
Я получаю username varchar и email_address varchar. Какой параметр конфигурации можно установить, чтобы исправить это?
Верхние символы в postgresql действительно злые, я не советую использовать их в любом имени.




В PostgreSQL имена без кавычек нечувствительны к регистру. Таким образом, имя пользователя и имя пользователя совпадают.
Если вы хотите иметь имя с учетом регистра, вы должны поместить имена в двойные кавычки.
Но я бы рекомендовал никогда не использовать имя с учетом регистра.
Что касается длины, YCF_L прав, в аннотации @Column отсутствует параметр длины.
@Column(name = 'Username', length = 64)
Я согласен с вами, но я хотел бы также поговорить о длине
Я добавил параметр длины в свой ответ.
Вам нужно будет использовать диалект postGresql, чтобы использовать имена таблиц с учетом регистра, обновить/добавить диалект либо в PostgreSQLDialect, либо в PostgreSQL82Dialect.
измените ваши application.properties для использования,
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
Вы имели в виду
@Column(name = 'Username', length = 64)?