2对多而不是1对多对多

use*_*129 9 hibernate

在Hibernate教程中,第25章最佳实践说我们应该使用2个一对多关系,而不是使用中间链接类的多对多关系.我看不出它有什么好处:为什么创建一个3d实体会更好,而多对多可以生成一个充当这个中间链接的连接表.但是,这个建议必须有充分的理由.

有人可以解释这个建议的理由吗?谢谢.

Mar*_*tos 10

多对多关系经常会产生障碍 - 与关系本身相关的额外数据,而不是关系中的任何一个参与者(根据我的经验,这是常态而非例外).例如,成员和组可能以多对多的方式关联,并且您想知道成员何时加入组,其成员身份是什么(新的,待定的,暂停的......)等等.

如果您首先将关系直接建模为多对多关系并相应地编写所有代码,那么第一个访问连接表的额外列将破坏您的模型和一堆代码.