【发布时间】:2012-06-23 13:20:36
【问题描述】:
我有两张桌子:A 和 B。 A 与 B 的关系为 1:1。
当我执行“从数据库创建实体类”时,Netbeans 会生成两个实体类,但 A 有一个注释:
@OneToMany
private List<B> bCollections;
但我设置了 1:1 的关系,为什么会这样?
SQL 脚本:
-- -----------------------------------------------------
-- Table `mydb`.`A`
-- ----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`A` (
`idA` INT NOT NULL ,
`value` VARCHAR(45) NULL ,
PRIMARY KEY (`idA`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`B`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`B` (
`idB` INT NOT NULL ,
`values` VARCHAR(45) NULL ,
`A_idA` INT NOT NULL ,
PRIMARY KEY (`idB`) ,
INDEX `fk_B_A` (`A_idA` ASC) ,
CONSTRAINT `fk_B_A`
FOREIGN KEY (`A_idA` )
REFERENCES `mydb`.`A` (`idA` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
【问题讨论】:
-
对我来说似乎是正确的。一个 A 可以有多个 B,这是一对多的关系,不是吗?
-
不,这是一对一的关系...
-
我没有看到任何禁止许多 B 引用同一个 A 的约束
-
好的,我必须添加哪个约束?
标签: sql jpa netbeans entity relationship