Hibernate - 如何在两列上映射两个表?

时间:2015-03-01 12:07:42

标签: mysql hibernate hql

我有两张桌子:

CREATE TABLE `framework_files` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fileName` varchar(777) DEFAULT NULL,
  `fileSize` float DEFAULT NULL,
  `filePath` varchar(777) DEFAULT NULL,
  `fileUrl` varchar(777) DEFAULT NULL,
  `linkedObjectID` int(11) DEFAULT NULL,
  `linkedObjectName` varchar(250) DEFAULT NULL,
  `active` int(11) DEFAULT '0',
  `uploadDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `uploadersIP` varchar(77) DEFAULT NULL,
  `uploadersIPXFORWARDEDFOR` varchar(77) DEFAULT NULL,
  `userName` varchar(777) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `q_idx` (`linkedObjectID`,`linkedObjectName`)
) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8;

第二张表

CREATE TABLE `publicSitePortfolioWorks` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `mainName` varchar(100) DEFAULT NULL,
  `tableName` varchar(250) DEFAULT 'publicSitePortfolioWorks',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

我需要在framework_files.linkedObjectID=publicSitePortfolioWorks.id and framework_files.linkedObjectName=publicSitePortfolioWork.tableName上将publicSitePortfolioWorks映射到framework_files。

即。 publicSitePortfolioWorks有很多framework_files对象。所有子对象必须在Set中,如

private Set<FrameworkFiles> fileTEST = new HashSet<>(0);

如何在hbm.xml文件中映射此Set?此时这两个表之间没有外键。

0 个答案:

没有答案