Я моделирую взаимосвязь между одной или несколькими строками в таблице Document
с помощью простой таблицы соединений RelatedDocuments
:
-----------
|from| to |
-----------
| 1| 2|
| 1| 5|
| 7| 1|
-----------
Однако, поскольку эти отношения по существу двунаправлены для моего варианта использования(и, учитывая это, для простоты доступа через JPA) я добавил триггер, который «зеркально отображает» каждое отношение между from и two при вставке.
-----------
|from| to |
-----------
| 1| 2|
| 2| 1|
| 1| 5|
| 5| 1|
| 7| 1|
| 1| 7|
-----------
Это позволяет мне легко найти все Document
sсвязанные, например, с идентификатором 1. Однако я не могу реализовать соответствующий триггер удаления («удалить противоположное тому, что вы только что удалили») из-за
ORA-04091: table RELATEDDOCUMENTS is mutating, trigger/function may not see it
, указывающего, совершенно правильно, что я 'Я пытаюсь манипулировать таблицей, которая сработала триггером.Есть ли хороший способ обойти это?Особенно для меня, желающего использовать простую JPA?