【问题标题】:must we specify the cardinlaty anotation in the entity?我们必须在实体中指定基数符号吗?
【发布时间】:2017-12-31 02:04:20
【问题描述】:

我是新的JAVA-EE 开发人员,我想知道我们是否有义务在Entity Class 中指定基数注释(@OneToOne,@ManyToOne...),即使我们使用@JoinColumn注释?

谢谢

【问题讨论】:

  • 你试过不使用它们吗?
  • @AmerQarabsa 实际上不是,但我不是在谈论语法方面,而是关于java-ee Standards
  • 您需要指定映射的类型,但您可以通过尝试知道这一点
  • @OneToOne@JoinColumn 结合将导致生成连接列以及该列的唯一约束实际上 执行一对一的关联)。 @ManyToOne 不会出现这种情况。如您所见,就模式生成而言,仅@JoinColumn 尚无定论
  • @crizzis 谢谢

标签: java jpa jakarta-ee entity java-ee-6


【解决方案1】:

当只使用@JoinColumn 注释时,框架无法猜测您想要拥有的关系类型(是 OneToOne 还是 OneToMany ...?),即使它识别关联的实体。

另一方面,@JoinColumn 不是必须的,因为它是可选的。

http://docs.oracle.com/javaee/6/api/javax/persistence/OneToOne.html

【讨论】:

  • 我虽然相反,但我的意思是基数是可选的,@JoinColum 是必要的。感谢您的回答
  • 基数从来不是可选的;使用@JoinColumn 代替@Column,后者与原始属性一起使用。
猜你喜欢
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
  • 2013-10-13
  • 2018-08-21
相关资源
最近更新 更多