Я новичок в Micronaut и пытаюсь использовать его с существующей базой данных.
У меня есть объект с явным именованием таблиц и столбцов, например
@Entity
@Table(name = "TGE040LABEL", schema = "dbo", catalog = "tp_63_dev")
@IdClass(Tge040LabelEntityPK.class)
public class Tge040LabelEntity
и даже если я настрою physical_naming_strategy
в application.yml следующим образом (и варианты, я пробовал разные значения для _3 _...):
jpa:
default:
entity-scan:
packages:
- 'my.app.domain'
properties:
hibernate:
hbm2ddl:
auto: none
show_sql: true
physical_naming_strategy: "io.micronaut.data.model.naming.NamingStrategies.UpperCase"
dialect: "org.hibernate.dialect.SQLServerDialect"
Я все еще получаю эту ошибку
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'tp_63_dev.dbo.tge040_label'
.
как будто моя конфигурация полностью игнорируется.
Версия Микронавта - micronautVersion=1.3.3
Я что-то упускаю?
ОБНОВИТЬ
До:
jpa:
default:
entity-scan:
packages:
- 'my.app.domain'
properties:
hibernate:
hbm2ddl:
auto: none
show_sql: true
dialect: "org.hibernate.dialect.SQLServerDialect"
После:
jpa:
default:
entity-scan:
packages:
- 'my.app.domain'
properties:
hibernate:
hbm2ddl:
auto: none
show_sql: false
dialect: "org.hibernate.dialect.SQLServerDialect"
physical_naming_strategy: 'org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl'
Просто чтобы сказать, конфигурация находится в нужном месте, изменения в show_sql
соблюдаются, изменения в physical_naming_strategy
явно игнорируются.
Действительно ли возможно изменить physical_naming_strategy
?
ОБНОВЛЕНИЕ 2
Изменил мою конфигурацию вот так:
jpa:
default:
entity-scan:
packages:
- 'my.app.domain'
properties:
hibernate:
id:
new_generator_mappings: false
format_sql: true
globally_quoted_identifiers_skip_column_definitions: true
jdbc:
lob:
non_contextual_creation: true
dialect: org.hibernate.dialect.SQLServerDialect
ddl-auto: none
physical_naming_strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
implicit_naming_strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
и отладки я получаю следующее:
Это означает, на мой взгляд, что микронавт активно переопределяет мою конфигурацию, которая, по крайней мере, не является интуитивно понятной. Это поведение где-то задокументировано?