Пакетное удаление в спящем режиме на таблице «многие ко многим»

еще один много-много вопросов Hibernate. У меня есть простейшее из возможных сопоставлений «многие ко многим» следующим образом:

@Entity
public class Strategy implements Serializable {
    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "STRATEGY_TO_GROUP", joinColumns = {@JoinColumn(name="STRATEGY_ID")}, inverseJoinColumns = {@JoinColumn(name = "STRATEGY_GROUP_ID")})
    private Set<StrategyGroup> groups;
...
}

И противоположная сторона отношения выглядит следующим образом:

@Entity
public class StrategyGroup implements Serializable {

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "STRATEGY_TO_GROUP", joinColumns = {@JoinColumn(name="STRATEGY_GROUP_ID")}, inverseJoinColumns = {@JoinColumn(name = "STRATEGY_ID")})
    private Set<Strategy> strategies = new HashSet<Strategy>();

То, что я хочу сделать сейчас, это очистить обе таблицы самым простым способом. Я пытаюсь следовать (их мой entityManager).

em.createQuery("delete from StrategyGroup sg").executeUpdate();
em.createQuery("delete from Strategy s").executeUpdate();

Это дает мне нарушение ограничений на @joinTable. С другой стороны, если я удалюem.remove(strategyGroup); ti работает нормально - группа стратегий удаляется, а таблица @joinTable корректно обновляется.

Так как мне очистить стол? Нужно ли загружать объекты и удалять их один за другим?

Спасибо за помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос