Compreendendo a substituição de anotação de coluna no Spring Boot JPA
Spring Boot JPA, uma estrutura ORM popular, permite que os desenvolvedores anotem entidades com @Column para especifique nomes de colunas específicos no banco de dados. No entanto, foi observado que, em certos cenários, o JPA pode ignorar a anotação @Column e usar como padrão a versão sublinhada do nome da propriedade no esquema do banco de dados.
Por que o JPA pode ignorar a anotação de coluna
Uma possível razão para o JPA ignorar a anotação @Column poderia ser a estratégia de nomenclatura usada pela estrutura subjacente do Hibernate. Por padrão, o Hibernate usa a estratégia org.hibernate.cfg.ImprovedNamingStrategy, que gera nomes de colunas Snake Case independentemente da anotação @Column.
Solution: EJB3 Naming Strategy
Para resolver esse problema e garantir que o JPA respeite a anotação @Column, você pode definir explicitamente a estratégia de nomenclatura do Hibernate como org.hibernate.cfg.EJB3NamingStrategy. Essa estratégia preservará o espaçamento de maiúsculas e minúsculas especificado na anotação @Column.
Considerações sobre o dialeto do SQL Server
Se você estiver se conectando ao Microsoft SQL Server, poderá encontrar um problema diferente em que o Hibernate usa o dialeto org.hibernate.dialect.SQLServerDialect. Esse dialeto pode levar à inconsistência de nomenclatura, onde o JPA pode usar nomes de colunas com maiúsculas e minúsculas, mesmo com a estratégia de nomenclatura EJB3. esse problema, você pode adicionar as seguintes propriedades ao seu application.properties arquivo:
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Essas configurações forçarão o Hibernate a usar as estratégias de nomenclatura Legacy Implicit e Standard Physical, o que garantirá que o A anotação @Column é respeitada e os nomes das colunas são gerados de forma consistente.Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3