Hibernate Toolsを使用して、STS2.9.2およびHibernateTools4.0.0を使用してMySQL5.5.27からリバースエンジニアリングを行っています。
POJOクラスを正しく生成しますが、テーブル全体で定義された外部キー関係を取得しません(つまり、セットも関係もまったく作成されません!)。
このツールがMySQLで動作するかどうか、または私が間違っていることについて、あなたの経験から何か考えはありますか?
ありがとう、
ボブ
Hibernate Toolsを使用して、STS2.9.2およびHibernateTools4.0.0を使用してMySQL5.5.27からリバースエンジニアリングを行っています。
POJOクラスを正しく生成しますが、テーブル全体で定義された外部キー関係を取得しません(つまり、セットも関係もまったく作成されません!)。
このツールがMySQLで動作するかどうか、または私が間違っていることについて、あなたの経験から何か考えはありますか?
ありがとう、
ボブ
OK、ついに動作しました!
問題は、技術的な性質のすべてのものと同様に、単純で深遠なものでした。
一言で言えば:CaseSensitive
私はcapitaliZatioN(つまり、Person、Phone)を使用してテーブルを作成し、MySQL Workbenchを使用して外部キーを作成しましたが、次のようになりました。
制約FK_Phone_Person
外部キー(person_id
)参照Person
(person_id
)
それ以外の
制約FK_Phone_Person
外部キー(person_id
)参照person
(person_id
)
大文字と小文字の区別に注意してください。
ケース全体が問題だったときに、その気の毒なことを機能させるためにたくさんの血、汗、涙を費やした後、すっごく幸せです!
多くの場合、mysqlのデフォルトエンジンもこの問題を引き起こします。つまり、テーブルの作成に使用されるデフォルトエンジンが「MyISAM」の場合は、「InnoDB」に変更してください。変更するクエリはALTERTABLEtable_name ENGINE=InnoDBです。、これがうまくいくことを願っています:)
私の経験では、リバースエンジニアリングツールが機能するには特定の制約が必要です。@ OneToManyリレーションシップがある場合は、両方のテーブルのIDを持つ中間テーブルと、null値や孤立した行を使用できないという制約が必要です。
また、テーブルはエンティティに応じて名前を付ける必要があり、中間テーブルは機能するように名前を付ける必要がありますowning_entity_entity2
。