title: when i add opcion forEach method get java.util.ConcurrentModificationException: null
body: <p>I have a problem, I have a question entity and an option entity, the relationship is one to many.</p>
  <p>but when I want to add the options in the question, it shows me that error, as far as I could find, it is because the question entity is being used while it wants to be updated, but I still don't know how to fix it.</p>
  <pre><code>@Entity
  public class Pregunta {
  
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private int id;
      
      
      @ManyToOne(fetch = FetchType.EAGER)
      @JoinColumn(name = &quot;cuestionario_id&quot;,nullable = false)
      @JsonIgnore
      private Cuestionario cuestionario;
      
      private String descripcion;
      
      
      @OneToMany(mappedBy = &quot;pregunta&quot;,fetch = FetchType.EAGER,cascade=CascadeType.ALL)
      
      private List&lt;Opcion&gt; opciones = new ArrayList&lt;&gt;();
      
      public Pregunta() {
          
      }
      
      @JsonCreator
      public Pregunta(@JsonProperty Cuestionario cuestionario,@JsonProperty String descripcion, List&lt;Opcion&gt; opciones) {
          super();
          this.cuestionario = cuestionario;
          this.descripcion = descripcion;
          this.opciones = opciones;
      }
  
      public int getId() {
          return id;
      }
  
      public Cuestionario getCuestionario() {
          return cuestionario;
      }
  
      public void setCuestionario(Cuestionario cuestionario) {
          this.cuestionario = cuestionario;
      }
  
      public String getDescripcion() {
          return descripcion;
      }
  
      public void setDescripcion(String descripcion) {
          this.descripcion = descripcion;
      }
      public List&lt;Opcion&gt; getOpciones() {
          return opciones;
      }
      public void setOpciones(List&lt;Opcion&gt; opciones) {
          this.opciones = opciones;
      }
  
      public void addOpcion(Opcion opcion) {
          this.opciones.add(opcion);
          opcion.setPregunta(this);
      }
   
      @Override
      public int hashCode() {
          return getClass().hashCode();
      }
  }
  </code></pre>
  <pre><code>@Entity
  public class Opcion {
  
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private int id;
      
      private boolean correct;
      
      private String content;
      
      @ManyToOne(fetch = FetchType.EAGER)
      @JoinColumn(name = &quot;pregunta_id&quot;,nullable = false)
      @JsonIgnore
      private Pregunta pregunta;
  
      public Opcion(boolean correct, String content) {
          super();
          this.correct = correct;
          //this.pregunta = pregunta;
          this.content = content;
      }
      
      public Opcion() {}
      
      public int getId() {
          return id;
      }
      
      public boolean isCorrect() {
          return correct;
      }
      public void setCorrect(boolean correct) {
          this.correct = correct;
      }
      
  
      public String getContent() {
          return content;
      }
  
      public Pregunta getPregunta() {
          return pregunta;
      }
  
      public void setPregunta(Pregunta pregunta) {
          this.pregunta = pregunta;
      }
  
      public void setContent(String content) {
          this.content = content;
      }
  
      @Override
      public int hashCode() {
          return getClass().hashCode();
      }
          
  }
  
  </code></pre>
  <pre><code>
  @Entity
  public class Cuestionario {
  
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private int id;
      
      @Column(nullable = false)
      private String name;
      
      
      @OneToMany(mappedBy = &quot;cuestionario&quot;,fetch = FetchType.EAGER,cascade = CascadeType.ALL)
      private List&lt;Pregunta&gt; preguntas = new ArrayList&lt;&gt;();
  
      @ManyToOne(fetch = FetchType.EAGER)
      @JoinColumn(name = &quot;tipo_cuestionario_id&quot;,nullable = false)
      private TipoCuestionario tipoCuestionario;
      
      @JsonCreator
      public Cuestionario(@JsonProperty int id,@JsonProperty String name,@JsonProperty List&lt;Pregunta&gt; preguntas,@JsonProperty TipoCuestionario tipoCuestionario) {
          super();
          this.id = id;
          this.name = name;
          this.preguntas = preguntas;
          this.tipoCuestionario = tipoCuestionario;
      }
  
      public Cuestionario() {}
  
      public int getId() {
          return id;
      }
  
      public String getName() {
          return name;
      }
      public void setName(String name) {
          this.name = name;
      }
  
      public List&lt;Pregunta&gt; getPreguntas() {
          return preguntas;
      }
  
      public void setPreguntas(List&lt;Pregunta&gt; preguntas) {
          this.preguntas = preguntas;
      }
  
      public TipoCuestionario getTipoCuestionario() {
          return tipoCuestionario;
      }
  
      public void setTipoCuestionario(TipoCuestionario tipoCuestionario) {
          this.tipoCuestionario = tipoCuestionario;
      }
  
      public void addPregunta(Pregunta pregunta) {
          this.preguntas.add(pregunta);
          pregunta.setCuestionario(this);
      }
  }
  
  </code></pre>
  <pre><code>@Override
      public Cuestionario createCuestionario(CuestionarioDto cuestionario) {
          
          Cuestionario newCuestionario = new Cuestionario();
          
          newCuestionario.setName(cuestionario.getName());
          
          Optional&lt;TipoCuestionario&gt; tipoCuestionarioOpt = tipoCuestionarioRepository.findById(cuestionario.getTipoCuestionario());
          
          if(tipoCuestionarioOpt.isPresent()) {
              newCuestionario.setTipoCuestionario(tipoCuestionarioOpt.get());
          }
          
          cuestionario.getPreguntas().forEach(pregunta-&gt;newCuestionario.addPregunta(pregunta));
          cuestionario.getPreguntas().forEach(pregunta-&gt;pregunta.getOpciones().forEach(opcion-&gt;pregunta.addOpcion(opcion)));  
  
          cuestionarioRepository.save(newCuestionario);
          
          return newCuestionario;
      }
  
      
  </code></pre>
  <p><a href="https://i.stack.imgur.com/AGv7s.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/AGv7s.png" alt="enter image description here" /></a></p>