「ドキュメント」テーブルがあります
CREATE TABLE `documents` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`docnum` int(11) default null,
`docdate` DATE default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
および対応するドキュメント @Entity。次に、orders
、invoices
および と 1 対 1 の関係を持つ他の同様のテーブルがありdocuments
ます。Documents エンティティは結合継承を宣言し、派生した Orders、Invoices などのエンティティは @PrimaryKeyJoinColumn を使用します。すべてが期待どおりに機能します。
次に、さまざまなドキュメント タイプ間の弱い関係を確立するテーブルがあります。
CREATE TABLE IF NOT EXISTS `documents_xref` (
`id` int(11) not null auto_increment primary key,
`xrefdate` DATE not null,
`src_doc` int(11) not null,
`src_doc_tablename` VARCHAR(250) not null,
`dst_doc` int(11) not null unique,
`dst_doc_tablename` VARCHAR(250) not null,
INDEX(`src_doc`),
CONSTRAINT FOREIGN KEY (`src_doc`) REFERENCES `documents` (`id`),
CONSTRAINT FOREIGN KEY (`dst_doc`) REFERENCES `documents` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
次に、ドキュメント間の関係のグラフを表示する必要があります。グラフの各ノードは、ドキュメントのタイプを示す必要があるため、テーブル名から @Entity クラスを見つける必要があります。JPA2からそれを取得するためのブルートフォース以外の方法はありますか?
余談ですが、担当者が 1500 人いる人は、「joined-inheritance」タグを作成して、私の質問に添付してください。どうもありがとう。