Запросы, ведущие к модификации данных, не разрешены Grails

В моем текущем приложении у меня есть служба, которая использует saxparser для чтения некоторого xml. В saxparser я пытаюсь сохранить новый объект в базе данных, но получаю следующую ошибку:

ERROR util.JDBCExceptionReporter  - Connection is read-only. Queries leading to data  modification are not allowed

Моя служба выглядит так:

@Transactional
class SchedulingService {

   def printIets() {
    LessonParser par = new LessonParser()
    print "de service macheert ier e trut"

    par.parse(["src/data/tweede/"])

   }
}

Парсер:

class LessonParser {

public void parse(baseFileLocations){
     ....
      SAXParserFactory factory = SAXParserFactory.newInstance();
      SAXParser saxParser = factory.newSAXParser();

      LessonHandler handler = new LessonHandler()             
      saxParser.parse(is, handler);

     ...

    }
}

И, наконец, обработчик, в котором производится попытка сохранения чего-либо в базу данных

class LessonHandler extends DefaultHandler{
    @Override
public void endElement(String uri, String localName, String qName) throws SAXException {

    if (qName.equalsIgnoreCase("TTSession")) {
        //voorlopig enkel hoorcolleges
        if (parse && this.courseType == CourseType.HC) {
            Course course = new Course (name:this.name , info:this.info,courseType:this.courseType,creator:this.creator)
            course.save()

        }
    }
}
}

Ошибка возникает, когда я пытаюсь сохранить курс в указанном выше обработчике. Также я использую базу данных mysql


person majorbelow    schedule 01.03.2014    source источник


Ответы (2)


Я подключил службу к спокойному API, я забыл там определение @transactional. Добавление сделало свое дело

person majorbelow    schedule 01.03.2014

Спасибо, что поделился.

служба получила определение "@Transactional(readOnly = true)". Таким образом, все методы будут доступны только для чтения.

Если вы хотите внести некоторые изменения, вам нужно добавить «@Transactional» перед методом.

person Frank    schedule 12.03.2014