NamingHelper.INSTANCE.generateHashedFkName()生成一个哈希名称。你需要这样的东西
@Overridepublic Identifier determineForeignKeyName(ImplicitForeignKeyNameSource source) { return toIdentifier( "FK_" + source.getTableName().getText() + "_" + source.getReferencedTableName().getText() + "_" + addUnderscorestocolumns(source.getColumnNames()), source.getBuildingContext());}您可以作为示例参考 Hibernate5NamingStrategy
该方法
Identifier determineForeignKeyName(ImplicitForeignKeyNameSourcesource)不用于生成列名,而是
F_users_fk_address用于此SQL的外键约束名
alter table users add constraint F_users_fk_address foreign key (fk_address) references user_addresses (f_pid)
要指定外键列名,您需要覆盖此方法
Identifier determineJoinColumnName(ImplicitJoinColumnNameSource source)
引用此:JoinColumnStrategyTest.java



