Hibernate lote excluir na tabela muitos-para-muitos

ainda outras perguntas de muitos para muitos do Hibernate. Eu tenho o mapeamento muitos-para-muitos mais simples possível da seguinte maneira:

@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;
...
}

E o lado oposto da relação como segue:

@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>();

O que eu quero fazer agora é esvaziar as duas tabelas da maneira mais fácil possível. Estou tentando seguir (em é o meu entityManager).

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

Isso me dá violação de restrição no @joinTable. Por outro lado, se eu excluir porem.remove(strategyGroup); ti funciona bem - o grupo de estratégias é excluído e o @joinTable é atualizado corretamente.

Então, como eu esvazio a mesa? Preciso carregar os objetos e excluí-los um por um?

Obrigado por ajuda.

questionAnswers(1)

yourAnswerToTheQuestion