【发布时间】:2013-06-15 01:25:19
【问题描述】:
我有一个`documents`表
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 和其他与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 代表的任何人愿意为我创建“联合继承”标签并将其附加到我的问题中,他是否可以这样做?非常感谢。
【问题讨论】:
标签: inheritance jpa orm