Поскольку у вас есть двунаправленные отношения между Game и GameObject . Когда вы удаляете Game , вы разрываете только одну сторону отношений; Вы удаляете ссылку Game -> GameObject в базе данных, но ссылка GameObject -> Game остается. Ваш метод deleteEntity должен сделать что-то вроде этого:
public void deleteEntity(Game game) {
// WARNING - Untested code, only use as an example
GameObject gameObject = game.getGameObject();
gameObject.removeFromCollection(game);
getEntityManager().remove(game);
getEntityManager().merge(gameObject);
}
Ваша базовая база данных, вероятно, поддерживает ограничения внешнего ключа. Это означает, что когда ваша реализация JPA пытается удалить запись Game из базы данных, ограничение внешнего ключа, которое таблица GameObject имеет для таблицы Game , не позволит удалить запись, но это позволит разрешить обнуление всех значений вашего столбца (кроме, конечно, первичного ключа / идентификатора).