虽然我们可以提供一个将被 Gorm 交互使用的命名策略,但似乎我们无法影响 Spring Boot 使用的底层命名策略,该策略仍设置为默认的 PhysicalNameStrategyStandardImpl 类。
为什么当我们使用 Gorm 时,我会在 Grails 应用程序中需要它? 如果我们想直接使用 hibernate,或者使用直接使用 hibernate 的库,例如 envers,那么它反过来又通过 spring boot 直接使用 jpa,并且不遵循请求的命名策略。
我们可以看到,即使我们使用自定义命名策略,我们的域对象首先通过自定义策略进行处理,然后通过默认的 PhysicalNamingStrategyStandardImpl 进行处理。
当记录的属性都没有任何效果时,我们如何提供不同的命名策略实现?
GORM 似乎使用了已弃用的NamingStrategy
。请参阅有关自定义命名策略的文档。
在application.yml
:
hibernate:
naming_strategy: 'util.CustomNamingStrategy'
请注意,您必须实现org.hibernate.cfg.NamingStrategy
或扩展org.hibernate.cfg.ImprovedNamingStrategy
而不是PhysicalNamingStrategyStandardImpl
.