title: Grails - Trying to remove objects, but they come back
body: <p>I have two domain classes, Job and Description, in a simple one to many relationship:</p>
  
  <p>Job.groovy</p>
  
  <pre><code>class Job {
      static hasMany = [descriptions: Description]
  
      static mapping = {
          descriptions lazy: false
      }
  }
  </code></pre>
  
  <p>Description.groovy</p>
  
  <pre><code>class Description {
      static belongsTo = [job: Job]
  }
  </code></pre>
  
  <p>I have two controller actions:</p>
  
  <pre><code>def removeDescriptionFromJob(Long id) {
      def jobInstance = Job.get(id)
  
      System.out.println("before remove: " + jobInstance.descriptions.toString())
  
      def description = jobInstance.descriptions.find { true }
      jobInstance.removeFromDescriptions(description)
      jobInstance.save(flush: true)
  
      System.out.println("after remove: " + jobInstance.descriptions.toString())
  
      redirect(action: "show", id: id)
  }
  
  def show(Long id) {
      def jobInstance = Job.get(id)
      System.out.println("in show: " + jobInstance.descriptions.toString())
  }
  </code></pre>
  
  <p>This is what gets printed when I submit a request to removeDescriptionFromJob:</p>
  
  <pre><code>before remove: [myapp.Description : 1]
  after remove: []
  in show: [myapp.Description : 1]
  </code></pre>
  
  <p>Why does the Description get removed in the removeDescriptionFromJob action, only to come back immediately afterwards in the show action?</p>