Вот то, что, как мне кажется, происходит (и как это исправить). Выше приведено однонаправленное отношение OneToMany, в котором не используется таблица соединений.Таким образом, у вас есть только FOO и BAR столы.
В моем случае я назвал их FOO и FOO_BAR (со связанными таблицами _AUD)
Однако Энверс требует в этой ситуации дополнительную таблицу соединений аудита (по разным уважительным причинам) и следит за тем, чтобыявляется таблицей соединений с именем ONE_MANY_AUD, поэтому в данном случае кажется, что она ожидает FOO, FOO_AUD, BAR, BAR_AUD, FOO_BAR_AUD и обеспечивает принудительное выполнение таблицы присоединения к аудиту.
У меня был только FOO, FOO_AUD, FOO_BAR и FOO_BAR_AUD, с которыми Энверс был в порядке, потому что он, кажется, соответствует ожидаемому именованию таблицы соединения, но вызывает проблему, описанную в вопросе.
Я не совсем уверен, что Энверс делает в этой ситуации, похоже, что он пытается поместить аудиты для Бар и отношения Foo-Bar в одну таблицу.
Слишкомисправить, я мог бы сделать мою таблицу Bar фактически называемой BAR (с BAR_AUD) и добавить ожидаемую таблицу соединений аудита FOO_BAR_AUD.В этот момент все работает так, как ожидалось, и я не получаю нулевые значения в списке BAR при получении ревизий FOO.
Было бы неплохо обновить проверки в Envers, чтобы уловить эту ситуацию, если это так.возможно (и я успешно угадываю, что происходит!)