Hibernate为MySQL生成同名索引和外键

2024-03-29

因此,在 Hibernate 管理的一个类中,我有以下属性定义:

@ManyToOne(optional = false)
private Company company;

当为 MySQL 创建数据库模式时,Hibernate 会自动为此字段创建外键和索引:

KEY `FK334B8608339B7FC2` (`company_id`),
CONSTRAINT `FK334B8608339B7FC2` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`)

正如您所看到的,hibernate 对索引 (KEY) 和外键约束使用相同的名称。这似乎并没有打扰 MySQL,但是当我尝试使用其他工具时(例如mysqldiff http://www.mysqldiff.org/%20%22mysqldiff%27)它抱怨存在重复的约束(因为 FK 和索引具有相同的名称)。

这是休眠的错误(它不应该生成两个具有相同名称的不同项目),还是工具的问题,他们错误地认为这些是重复的?

仅供参考:我正在使用 Hibernate 3.4.0.GA 和 MySQL 5.1.44

Thanks!

John.


根据我的经验,hibernate 通常会在 FK 字段上创建一个外键和索引,每个名称都不同。我不明白为什么休眠会奇怪地生成相同的名称。

您可以使用@ForeignKey(name=""), @Index or @IndexColumn更改外键或索引名称。 这样就可以避免这个麻烦了。

但是,看起来有一个bug https://hibernate.onjira.com/browse/HHH-4245 with @OneToOne

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate为MySQL生成同名索引和外键 的相关文章

随机推荐

  • 单击行后插入动态创建组件

    我正在研究解决方案 我想在单击行后附加动态创建的组件 我的表由带有操作按钮的行组成 单击该按钮我将调用角度函数并在该行之后加载组件 这是表代码 div class row div class col div div
  • 如何动态添加tinymce 4.x到textarea?

    我在初始化后动态地将tinymce添加到textarea时遇到了一个小问题 tinymce init selector textarea theme modern height 100 plugins advlist autolink im
  • SimpleCov 计算用户模型的 0% 覆盖率

    我决定尝试使用简单的科夫 https github com colszowka simplecovgem 我认为这是一个很酷的工具 但我有一个问题 我有一个模型User 我有user spec rb其中包含测试用例 但 simplecov
  • Html.DropDownListFor 设置选定值

    我创建一个 Html DropDownListFor 并从数据库中填充它 如何将选定的值设置为下拉列表 My View Html DropDownListFor m gt m Forms new SelectList Model Forms
  • 相对布局权重

    在布局资源 XML 中 我有 3 个relativelayout 它们位于主relativelayout 内 视图将垂直显示 这3个RelativeLayout 被设置为彼此相邻 我希望它们填充整个屏幕 无论屏幕尺寸是多少 我的布局视图
  • 堆的算法在列表列表中的实现

    我正在使用堆算法创建一个包含所述列表的每个排列的列表列表 每个排列将是其自己的列表 当我在算法中打印它时它可以正常工作 但是当我尝试将它添加到我的列表列表中并且它们都是相同的数组 4 1 2 3 时它不能正常工作 我注释掉了我测试过的打印内
  • 我们如何将上下文转换为片段引用?

    我有一个类 Common 和一个片段 FragmentTest Common java 是一个通用类 它具有其他活动的一些通用函数 这些函数通过每个活动的上下文访问 在这里我传递片段的上下文到该类中的函数 我正在这样做 在片段中 Commo
  • 如何在Python中将一列整数转换为标准小时时间?

    我有一个像这样的数据框 BuyTime ID SellTime 94650 1 94651 94717 1 94817 120458 2 114119 买入时间和卖出时间类型是整数 但我想将它们转换为标准时间日期 我已经用过 quote S
  • Javascript 强制在浏览器中打开链接

    有没有办法从 JavaScript 进行对象检测并强制在特定浏览器中打开链接 For eg 在 IE 中打开 在 Firefox 中打开 不 如果没有一些浏览器插件 绝对不行 如果可能的话 这将是一个巨大的安全风险
  • 数据表 - 按日期范围过滤 - 未返回正确的结果

    我目前正在使用 jQuery 的数据表插件https datatables net https datatables net 使用此处找到的日期范围插件http www daterangepicker com http www datera
  • 删除子循环在完成之前退出

    我有以下代码 它查找文档中类名为 foo 的所有元素 然后将它们全部删除 function doc var items doc getElementsByClassName foo alert items length if items l
  • 获取物理IP地址背后的技巧是什么?

    我怎样才能获得与我访问 时获得的相同的IP地址 http www whatsmyip org http www whatsmyip org 使用C 和winsock库 我知道如何获取 127 0 0 1 和路由器IP 192 168 1 1
  • 哪个文件 gradle.properties 的优先级更高?

    我有本地和全局 gradle properties 需要全局的来配置代理 但它还包含其他参数 想知道如果对于相同的设置指定不同的值会发生什么 哪些文件将优先 或者它们可能是它们是如何合并的 我的全局 gradle properties sy
  • 405 NuGet 推送中不允许使用方法

    当我尝试推送时 我的 NuGet 服务器抛出 405 不允许 至少 NuGet 控制台是这么说的 Failed to process request Method Not Allowed The remote server returned
  • 深度优先图算法的时间复杂度[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始学习时间复杂度 并且我在示例中查找了一些简单排序的时间复杂度 我想知道如何计算图中深度优先搜索的平均时间复杂度 V n and E
  • 如何按降序对 JSON 数组元素进行排序? [复制]

    这个问题在这里已经有答案了 In my 索引 html 我从服务器接收数据 顺序如下 id 1 keyOne valueOne keyTwo valueTwo id 2 keyOne valueOne keyTwo valueTwo id
  • 子类化 static.File

    我是 Twisted 的新手 在对twisted 中的 static File 进行一些必要的子类化时遇到了麻烦 我正在尝试在子类中设置请求标头 class ResponseFile static File def render GET s
  • now-cli 部署不会构建 package.json 依赖项

    我正在尝试通过部署 Sapper 构建的应用程序 now node 该任务基本上是部署具有依赖项的 Polka 服务器并静态地提供静态 和客户端 文件 我已设法通过 includeFiles 包含 Lambda 所需的文件 但现在我在日志中
  • IIS 7如何保留网站子文件夹身份验证设置

    在 IIS 中 您可以使用 功能 视图来设置文件夹级别的设置 请参见屏幕截图 我想对网站的多个子文件夹禁用匿名身份验证 并将这些设置保存到源代码管理中 我想知道 IIS 将这些设置保存在哪里 它们不在网站 web config 或子文件夹内
  • Hibernate为MySQL生成同名索引和外键

    因此 在 Hibernate 管理的一个类中 我有以下属性定义 ManyToOne optional false private Company company 当为 MySQL 创建数据库模式时 Hibernate 会自动为此字段创建外键