我在两个休眠实体之间有 m2m 关系,我们称它们为电影和演员,我已经设置了双向链接。显然,这被建模为电影表和演员表,以及数据库中两者之间的外键连接表。
UI 允许您更新演员和电影之间的关系。在内部,UI 使用所涉及的电影和演员的 ID 跟踪您的屏幕更新,然后在您点击“保存”时将带有演员 ID 列表的电影 ID 发送到控制器。
现在我的问题是:假设我通过在数据库中添加四个演员来更新电影。我有要添加的演员 ID 列表,但我没有实际的演员对象,因为我只从 UI 收到了他们的 ID。
要进行此更新,我是否需要填充四个成熟的 Actor 对象只是为了将它们添加到我的 Movie 对象,以便我可以将其存储回数据库?换句话说,我是否需要先从我的数据库中进行选择才能进行更新?进行额外的选择调用似乎效率低下,因为真正要更新的只是向连接表添加一些行,而且我已经拥有了执行此操作所需的所有信息。
因此,hibernate 是否提供了一种方便的方法来直接将键添加到连接表本身(无需编写自定义的原始 sql 查询)?