Java JPA:有没有办法给约束名称添加一个全局前缀?

Java JPA:有没有办法给约束名称添加一个全局前缀?,java,hibernate,jpa,constraints,prefix,Java,Hibernate,Jpa,Constraints,Prefix,我需要为所有数据库对象(如表和约束)添加一个全局前缀,这样当我提取DDL模式时,它将是非常好和正确的 我知道如何在Java代码中指定约束名称() 我还知道如何为表添加全局前缀。这是我目前在我的项目中实现的 我不知道的是如何将相同的全局前缀添加到约束名称中。您可以看到,当Hibernates创建所有数据库表和约束时,它会执行以下操作: Hibernate: alter table ABC_MYTABLE1 add constraint UK_MYTABLE1_COLUMN1 unique (col

我需要为所有数据库对象(如表和约束)添加一个全局前缀,这样当我提取DDL模式时,它将是非常好和正确的

我知道如何在Java代码中指定约束名称()

我还知道如何为表添加全局前缀。这是我目前在我的项目中实现的

我不知道的是如何将相同的全局前缀添加到约束名称中。您可以看到,当Hibernates创建所有数据库表和约束时,它会执行以下操作:

Hibernate: alter table ABC_MYTABLE1 add constraint UK_MYTABLE1_COLUMN1 unique (column1)
Hibernate: alter table ABC_MYTABLE1 add constraint UK_MYTABLE1_COLUMN2 unique (column2)
Hibernate: alter table ABC_MYTABLE2 add constraint UK_MYTABLE2_COLUMN1 unique (column1)
Hibernate: alter table ABC_MYTABLE2 add constraint UK_MYTABLE2_COLUMN2 unique (column2)
...
“ABC”是我的全球前缀。注意约束名称如何缺少前缀?我最需要的是:

Hibernate: alter table ABC_MYTABLE1 add constraint ABC_UK_MYTABLE1_COLUMN1 unique (column1)
Hibernate: alter table ABC_MYTABLE1 add constraint ABC_UK_MYTABLE1_COLUMN2 unique (column2)
Hibernate: alter table ABC_MYTABLE2 add constraint ABC_UK_MYTABLE2_COLUMN1 unique (column1)
Hibernate: alter table ABC_MYTABLE2 add constraint ABC_UK_MYTABLE2_COLUMN2 unique (column2)
...
这一次,表和约束名称都有前缀

前缀字符串必须是可变的,我不能硬编码,因为我需要能够在配置文件或类似文件中配置它

我当前的问题是NamingStrategy类似乎没有提供任何修改约束名称的方法。我在谷歌上搜索了很多,但我在官方的Hibernate网站上找到的都是门票,这可能与这个问题有关,也可能与此无关。不管怎样,它们仍然是开放的

有什么解决办法吗?我不希望我的模式最终导致一半的对象/约束缺少必要的前缀


我不得不说,我发现它们提供一种机制来更改表的命名策略有点草率,但完全忽略了约束。

当FK名称出现在命名策略界面中时,使用Hibernate 5.0(或6?)似乎很容易(请参见)。

使用Hibernate 5.0(或6?)似乎很容易当FK名称出现在命名策略界面中时(请参阅)。

您使用哪个hibernate版本?@javadev:4.3.8.final您使用哪个hibernate版本?@javadev:4.3.8.FinalI请参阅。我还没有找到任何解决办法。如果等待另一个主要版本是一个人所能做的,我想这让我别无选择。谢谢,我明白了。我还没有找到任何解决办法。如果等待另一个主要版本是一个人所能做的,我想这让我别无选择。非常感谢。