2014-09-19 211 views
0

我需要Hibernate和多对多关系的帮助。这是我在link上的示例模式。这很简单,所以你可以很容易地明白这一点。浓度见表PERSON,ADDRESSPERSON_ADDRESS休眠 - 优化ManyToMany关系

Java模型在这里link。我的问题是:

  • 那个班级PersonAddress是完全错误的吗?
  • 如果我这样说吧,在发展的后期阶段,我会遇到什么问题?
  • 我该如何优化它?

我的示例代码的Git回购是here

+0

你不有明确的MN关系。这是一个具有关系上额外属性的M-N,因此引入一个中间类(如你所做的那样)并且有两个1-N关系是正确的。那么为什么不实际使用它?你在这篇文章中没有“问题”。 – 2014-09-19 06:57:46

+0

如果我想收集地址中的人员地址和收集人员地址,该怎么办?是否需要避免'private Collection personAddressCollection'? – shx 2014-09-20 19:12:05

回答

0

PersonAddress被称为连接表。 Hibernate支持连接表,你不需要额外的努力来实现它。但我不确定是否可以将其他属性添加到连接表中。 Hiberante bidirectional association

对于附加属性在你的连接表,你应该与@Embeddable和@EmbeddedId注解,但后来去大部分参加工作,你会做你自己的,看看这个答案,Hiberante additional properties in join table.