したがって、Hibernate によって管理されるクラスの 1 つに、次のプロパティ定義があります。
@ManyToOne(optional = false)
private Company company;
Hibernate は、MySQL の db スキーマを作成するときに、このフィールドの外部キーとインデックスを自動的に作成します。
KEY `FK334B8608339B7FC2` (`company_id`),
CONSTRAINT `FK334B8608339B7FC2` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`)
ご覧のとおり、hibernate はインデックス (KEY) と外部キー制約の両方に同じ名前を使用しています。これは MySQL を悩ませているようには見えませんが、他のツール ( mysqldiff など) を使用しようとすると、制約が重複していると不平を言います (FK とインデックスが同じ名前であるため)。
これは休止状態のエラー (同じ名前の 2 つの異なるアイテムを生成してはならない) ですか、それともツールの問題で、これらが重複していると誤って認識していますか?
参考: Hibernate 3.4.0.GA と MySQL 5.1.44 を使用しています。
ありがとう!
ジョン。