如何将休眠关联映射从'one to many'更改为"多到多"?



实体之间的关系必须更改,我想知道更改关联映射类型是否正常,以及数据库中已经存在的数据是否会正常传输?我试图查找有关它的信息,但没有找到。或者,如果映射将被更改,则必须通过sql查询手动传输已经存在的数据?感谢

如果关联已经使用了一个联接表,并且多对多的映射一直使用具有相同列名的同一联接表,那么除了删除联接表的一个ci=列上可能存在的唯一性约束之外,您不必做任何事。

否则,是的,很明显,您将不得不使用SQL或任何其他工具(FlywayDB、Liquibase等)迁移您的模式

我可以简单地做到:

设A和B为原始表。A->B(N-1)被移动到A&lt-AB->B(N-N)。

我不得不-从表A中"删除"外键列,赞成将记录插入AB(由通向A和B的两个外键组成)仅此而已。

  • 第一步:用多对多注释替换多对一注释。并且lauch在附加模式下休眠以生成N-N表
  • 第二步:在这个N-N表中插入记录,给定1-N关系的剩余外键列中的内容
  • 第三步:删除此外键列

最新更新