У меня проблемы с столбцами базы данных PostgreSQL в некоторых таблицах.
Если я объявляю столбец String
с именем типа a_column_name
Hibernate принимает столбец таблицы с именем a_column_name
.
Но моя проблема возникает, когда я объявляю тип столбца Integer
или BigDecimal
. При запуске Hibernate создает новый столбец типа int4
или numeric(19, 2)
с именем, например acolumnname , с NULL.
Hibernate: alter table t_myTable add column acolumnname int4
или
Hibernate: alter table t_myTable add column acolumnname numeric(19, 2)
Я попытался установить имя-стратегию в конфигурационном файле Spring boot :
jpa:
show-sql: true
hibernate:
ddl-auto: update
properties:
hibernate.cache.use_second_level_cache: false
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: true
naming.physical-strategy: PhysicalNamingStrategyStandardImpl
Но без результата ...
Поэтому мой вопрос заключается в том, почему Hibernate принимает имя столбца, когда оно имеет тип String , но не любит его, когда оно Integer или BigDecimal .
Привет.
---- Обновление 1 ----
После поиска в организации, чтобы опубликовать здесь код, как Веселин Давыдов спросил, я заметил, что некоторые столбцы принимаются, а другие нет.
Сущности создаются из структуры компании, которая анализирует JSON со структурой БД (таблицы, поля, тип полей ...) и генерирует класс сущностей JAVA. Поэтому после просмотра ответа от SAM я изменил код шаблона Entity, добавив @Column(name = "your_column_name")
. Теперь, когда Hibernate запускается, он не добавляет столбцы с неправильными именами и использует столбцы DB.