2016-01-19 2 views
0
случае

If sample является неnull линия с merge(..) называется в то время как другие 5 строк в if нет. Почему ****? Я выпрыгнув из окна в ближайшее время ...Любопытный вызов слияния внутри не-верно, если

class SampleService { 
    def markError(def job, def prop) { 
     def sample = job.getSamples().find { sample -> 
      sample.getProp() == prop } 
     if (sample == null) { 
      log.debug("i can see this only when sample == null") 
      println "i can see this only when sample == null" 
      def newSample = new Sample(prop: prob) 
      newSample.setJob(job) 
      newSample.merge(flush: true, failOnError: true) 
     } 
    } 
} 

я уже:

  • Grails чистые & Grails компилировать.
  • удаленная целевая папка и папка с bin.
  • перезапустил приложение несколько раз.
  • проверено с помощью intellij и eclipse.
+0

My be http://stackoverflow.com/questions/34731497/why-does-a-user-get-updated-using-spring-security-and-grails-without-calling-sav?noredirect11 # comment57236079_34731497 может помочь. Здесь 'то, что вы видите, это Hibernate, обнаруживающий, что постоянный экземпляр был изменен, и по умолчанию, когда сессия закрыта, он обнаружит изменения и поможет их сбросить в базу данных для вас». –

ответ

0

Я был упущен отладчиками: линия не была выполнена, но выделена. Я не знаю, почему это было подчеркнуто.

Надеюсь, это не позволит кому-либо еще сходить с ума! :)

Смежные вопросы