【发布时间】:2016-02-18 17:56:12
【问题描述】:
我正在开发一个演示项目,该项目具有连接多对多的驱动程序和许可证。司机可以拥有更多的驾照,一张驾照可以连接更多的驾驭者。这不是驾驶执照。我所说的许可证与他们可以或不能运输的货物有关。这就是它应该的方式。 最近,我有一个请求要在此连接中添加两个额外的字段。 Driver 和 License 通过表 Drivers_License 连接 ManyToMany。额外提交给 Drivers_License,即 expireDate 和 stateIssued。
这是我的数据库现在的样子。
Driver Driver_License License
----------- ------------------- --------------------
driverID driverID licenseID
driverName licenseID licenseName
driverNumber expirationDate
driverDateOfBirth stateIssued
问题是我需要中断多对多连接并创建两个单对多连接。我还需要由 driverID 和 licenseID 组成复合密钥。
这就是我所说的例子。 Hibernate Many-to-Many Association with Extra Columns in Join Table Example
您能否告诉我是否有一些完整的示例如何使用 spring 和 hibernate 来完成此操作,或者您是否知道一些可以通过以经典方式使用 ManyToMany 来处理此问题的示例?
【问题讨论】:
-
您对表有控制权还是从实体生成架构?
-
架构是在实体上生成的。
-
酷。那为什么不把新的两个新字段放在 License Entity 中呢?
-
所以你的意思是我可以使用 ManyToMany 并将这些字段放在 License 中而不是 DriverLicense 中?会尝试的。但是数据库有什么变化吗?
-
好吧,我没有看到任何特别需要多对多的东西。 OneToMany 会做到这一点。但是让我们明确一点,我问这些表是由您的应用程序生成的还是预先存在的?或者,也许您有一个创建脚本。无论如何,新字段将进入许可证表(和实体)。