为什么 quarkus 中的 hibernate(reactive) 命名策略会覆盖注解 @jakarta.persistence.Table

问题描述 投票:0回答:1

在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") 注解指定表名称,则该注解将被该属性覆盖。这可能会令人困惑,因为注释似乎应该优先。

我的用例是将命名策略应用于所有列道具而不是表名称。有没有办法实现这个目标?

hibernate quarkus hibernate-mapping hibernate-reactive quarkus-hibernate-reactive
1个回答
0
投票

@Table
注释中的值 - 是逻辑名称。该策略将逻辑名称转换为物理名称,这些步骤如下所述:https://docs.jboss.org/hibernate/orm/6.1/userguide/html_single/Hibernate_User_Guide.html#naming

您可以定义自己的策略类,扩展 CamelCaseToUnderscoresNamingStrategy,重写

toPhysicalTableName
方法,并强制它返回输入值而不更改。

© www.soinside.com 2019 - 2024. All rights reserved.