【发布时间】:2018-02-16 09:26:20
【问题描述】:
我对hibernate和spring很陌生,不明白如何建立表之间的关系。我需要存储业务伙伴机器关系数据。即一个业务伙伴有多台机器,但一台机器只有一个业务伙伴。下面我提到了表格信息和我的代码。请帮助我,提前感谢所有帮助。
#################商业伙伴表###################
CREATE TABLE `bp_master` (
`BPId` int(11) NOT NULL,
`BPName` varchar(100) DEFAULT NULL,
`BPPrimaryAddress` varchar(45) DEFAULT NULL,
`BPSecondaryAddress` varchar(45) DEFAULT NULL,
`BPPrimaryPhoneNum` varchar(45) DEFAULT NULL,
`BPSecondaryPhoneNum` varchar(45) DEFAULT NULL,
`BPContactName1` varchar(45) DEFAULT NULL,
`BPContantName2` varchar(45) DEFAULT NULL,
`BPContactName3` varchar(45) DEFAULT NULL,
`BPPrimaryAdminId` varchar(45) NOT NULL,
`BPStatus` varchar(45) DEFAULT NULL,
`BPTypeId` int(11) DEFAULT NULL,
`BPStatusChangeTimeStamp` datetime DEFAULT NULL,
PRIMARY KEY (`BPId`),
KEY `BPType_idx` (`BPTypeId`),
CONSTRAINT `BPType` FOREIGN KEY (`BPTypeId`) REFERENCES `bp_type_master`
(`BPTypeId`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
###############机台#####################
CREATE TABLE `machine_master` (
`MachineId` int(11) NOT NULL,
`MachineName` varchar(45) DEFAULT NULL,
`MachineLocation` varchar(45) NOT NULL,
`MachineAddress` varchar(45) NOT NULL,
`MachineInstalledDate` datetime DEFAULT NULL,
`MachineStatus` varchar(45) DEFAULT NULL,
`MachineStatusChangeTimeStamp` datetime DEFAULT NULL,
`MachineTypeId` varchar(45) DEFAULT NULL,
PRIMARY KEY (`MachineId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
##################bp_machine_rel 表####################
CREATE TABLE `bp_machine_rel` (
`BPId` int(11) DEFAULT NULL,
`MachineId` int(11) DEFAULT NULL,
`BPMachineStatus` varchar(45) DEFAULT NULL,
`BPMachineStatusChangeTimeStamp` datetime DEFAULT NULL,
UNIQUE KEY `MachineId_UNIQUE` (`MachineId`),
KEY `BPId_idx` (`BPId`),
KEY `MachineId_idx` (`MachineId`),
CONSTRAINT `BPId` FOREIGN KEY (`BPId`) REFERENCES `bp_master` (`BPId`)
ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `MachineId` FOREIGN KEY (`MachineId`) REFERENCES
`machine_master` (`MachineId`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
class Machine(){
@OneToOne
private BusinessPartner bp;
}
class BusinessPartner{
@OneToMany
private List<Machine> bpMachines;
}
【问题讨论】:
标签: mysql hibernate spring-mvc