Mapeamento de 3 entidades hibernate

Boa tarde pessoal, no meu sistema, tenho um relacionamento, que é o seguinte:

Turma, MaterialEscolar, ItemEscolar. É inserido as turmas e os materiais escolares. A Entidade ItemEscolar serve para fazer o vínculo de um material para uma turma e a quantidade de materiais.

Meu mapeamento é o seguinte:

@Entity
public class Turma {
  
  @Id
  @GeneratedValue
  private Long id;
  
  private String nome;
  
  @OneToMany(mappedBy="turma")
  private Collection<ItemEscolar> itensEscolares = new ArrayList<ItemEscolar>();
}

@Entity
public class MaterialEscolar {
  
  @Id
  @GeneratedValue
  private Long id;
  
  private String material;
}

@Entity
public class ItemEscolar {
  
  @Id
  @GeneratedValue
  private Long id;
  
  private Integer quantidade;
  
  @ManyToOne
  private Turma turma;
  
  @ManyToOne
  private MaterialEscolar materialEscolar;
}

A minha dúvida é a seguinte, quando eu carrego a turma, ele traz a lista dos materiais, porém, quando ele carrega a lista de materiais ele acaba recarregando a turma e gera um estouro de pilha porque fica carregando infinitamente. Alguma idéia de como eu posso resolver?

Ao meu ver vc deveria utilizar um mapeamento @ManyToMany entre a Turma, MaterialEscolar

[quote=Lucas Abbatepaolo]Ao meu ver vc deveria utilizar um mapeamento @ManyToMany entre a Turma, MaterialEscolar

[/quote]

em qual entity? na de turma? pensei em fazer um relacionamento OneToMany em turma (no momento está bidirecional), só que eu preciso da quantidade de materiais