Создание полей с заголовком с помощью JPA/Spring Boot на Postgres

У меня есть такой 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. Какой параметр конфигурации можно установить, чтобы исправить это?

Вы имели в виду @Column(name = 'Username', length = 64) ?

YCF_L 14.05.2019 15:15

Верхние символы в postgresql действительно злые, я не советую использовать их в любом имени.

YCF_L 14.05.2019 15:19
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
133
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В PostgreSQL имена без кавычек нечувствительны к регистру. Таким образом, имя пользователя и имя пользователя совпадают.

Если вы хотите иметь имя с учетом регистра, вы должны поместить имена в двойные кавычки.

Но я бы рекомендовал никогда не использовать имя с учетом регистра.

Что касается длины, YCF_L прав, в аннотации @Column отсутствует параметр длины.

@Column(name = 'Username', length = 64)

Я согласен с вами, но я хотел бы также поговорить о длине

YCF_L 14.05.2019 15:17

Я добавил параметр длины в свой ответ.

Simon Martinelli 14.05.2019 15:32

Вам нужно будет использовать диалект postGresql, чтобы использовать имена таблиц с учетом регистра, обновить/добавить диалект либо в PostgreSQLDialect, либо в PostgreSQL82Dialect.

измените ваши application.properties для использования,

spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect

Другие вопросы по теме