Inverse просто решает, какой объект в отношении отвечает за обновление базы данных для отражения ассоциации.
Предположим, что двунаправленная связь один ко многим. В коде A и B есть два класса, A содержит набор B, B поддерживает ссылку на A. На уровне базы данных обновляется только один внешний ключ, таблица для B содержит столбец для первичного ключа. А.
В этом случае предположим, что мы поставили обратное = true на заданную сторону. Это означает, что простое добавление объекта в набор не приведет к обновлению внешнего ключа. Поскольку ответственность за обновление внешнего ключа лежит на B. Таким образом, добавление объекта B в набор, который поддерживает A, недостаточно для обновления столбца внешнего ключа. objectA.addToSetOfB (objectB) не повлияет на внешний ключ.
Только когда B дается ссылка на A, внешний ключ в таблице для B будет обновляться. Итак, objectB.setA (objectA) обязательно обновит внешний ключ и фактически установит связь.
Я думаю, что та же концепция будет относиться и ко многим ко многим отношениям.