Я не уверен, понял ли я вас правильно, но из того, что я понял, мое первое предположение состоит в том, что вы не использовали все необходимые аннотации, чтобы убедиться, что hibernate автоматически удалит необходимые ссылки в Ref самостоятельно.
В пределах отношения manyToMany вы можете использовать joinTables и cascadetypes , чтобы убедиться, что hibernate знает, где удалить все необходимые отношения, не создавая для него собственный domainObject.
ТамЕсть много хороших руководств, как это сделать.На первый взгляд, руководство от mkyong выглядит довольно хорошо.Примечание: он аннотировал геттеры вместо объявлений переменных!(это вопрос вкуса).