【问题标题】:JPA & Netbeans entity relationsJPA 和 Netbeans 实体关系
【发布时间】: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


【解决方案1】:

也许添加约束

UNIQUE (A_idA)

【讨论】:

  • 你是对的。对于 JPA 自动生成,我们需要添加 UNIQUE 约束来强制 JPA 关系。
猜你喜欢
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 2013-04-25
  • 2011-02-14
  • 2020-05-23
  • 2014-02-16
相关资源
最近更新 更多