Foo имеет:
@ManyToMany(mappedBy = "foos")
private Set<Bar> bars
и Bar имеет:
@ManyToMany
private Set<Foo> foos
Чем отличается расположение атрибута mappedBy с двунаправленным отношением, отличным от того, называется ли таблица foo_bar или bar_foo; и без атрибута mappedBy я получаю две таблицы соединений, как foo_bar, так и bar_foo.