休眠方言会影响外键名称的创建方式吗?
Does hibernate dialect affect how foreign key names are created?
我有两个连接到 MariaDB 数据库的项目。两个项目都使用 hibernate 作为 ORM 工具,并且两个项目中的模型对象声明相同。
当我在多个表中部署它们时,会出现重复的外键(关系重复,但名称不同)。
此时此刻,我看到的唯一区别是由于库的兼容性,每个项目的休眠方言都被声明为不同的。
答案并不明确,因为项目可能会改变,但它是在 2022 年使用的版本。
在回答我自己的问题时,我有更多信息要检查,所以这很有趣:
有时,DBMS(数据库管理系统)被设置为更改 table 的命名,以防止像 'do lowercase to the table names provided' 这样的错误输入,目的是避免 table 扩散,因为错误的命名。
但是,至于 正在散列外键 (FK) 名称的是 hibernate (如果您没有明确提供它们)而不是 DBMS(如果您提供不同的大小写)对于映射到同一数据库的两个项目的相同 table 名称,休眠的 2 个实例将查找 2 个不同的 FK 名称。
我有两个连接到 MariaDB 数据库的项目。两个项目都使用 hibernate 作为 ORM 工具,并且两个项目中的模型对象声明相同。
当我在多个表中部署它们时,会出现重复的外键(关系重复,但名称不同)。
此时此刻,我看到的唯一区别是由于库的兼容性,每个项目的休眠方言都被声明为不同的。
答案并不明确,因为项目可能会改变,但它是在 2022 年使用的版本。
在回答我自己的问题时,我有更多信息要检查,所以这很有趣:
有时,DBMS(数据库管理系统)被设置为更改 table 的命名,以防止像 'do lowercase to the table names provided' 这样的错误输入,目的是避免 table 扩散,因为错误的命名。
但是,至于 正在散列外键 (FK) 名称的是 hibernate (如果您没有明确提供它们)而不是 DBMS(如果您提供不同的大小写)对于映射到同一数据库的两个项目的相同 table 名称,休眠的 2 个实例将查找 2 个不同的 FK 名称。