在Quarkus中,您可以使用属性
quarkus.hibernate-orm.physical-naming-strategy. If you set this property to org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy
配置Hibernate的物理命名策略,Hibernate会将CamelCase实体名称转换为snake_case表名称。
但是,如果您还使用 @jakarta.persistence.Table(name = "something") 注解指定表名称,则该注解将被该属性覆盖。这可能会令人困惑,因为注释似乎应该优先。
我的用例是将命名策略应用于所有列道具而不是表名称。有没有办法实现这个目标?
@Table
注释中的值 - 是逻辑名称。该策略将逻辑名称转换为物理名称,这些步骤如下所述:https://docs.jboss.org/hibernate/orm/6.1/userguide/html_single/Hibernate_User_Guide.html#naming。
您可以定义自己的策略类,扩展 CamelCaseToUnderscoresNamingStrategy,重写
toPhysicalTableName
方法,并强制它返回输入值而不更改。