尽管我的问题专门针对使用Hibernate的Play框架中描述实体关系的方式,但我确信这是一般概念.
当我们有一对多关系时,我们总是被要求指定拥有方.
所以,例如,如果我们在Person和PhoneNumber之间有一对多的关系,我们就会编写这样的代码.
@Entity class Person { @OneToMany(mappedBy="person") public Set<PhoneNumber> phoneNumbers; } @Entity class PhoneNumber { @ManyToOne public Person person; }
在上面的代码中,拥有实体是PhoneNumber.任何一方作为拥有实体的利弊是什么?
我意识到当拥有实体是PhoneNUmber时,表示的关系是ManyToOne,它不会产生连接表,而当拥有方是Person时,描述的关系将是OneToMany,在这种情况下将创建关系表.
这是确定拥有方的主要原因,还是还有其他原因?
更新:
我刚刚意识到this thread提供了部分答案,但我希望可能还有其他要点.