не может удалить записи в интеграционном тесте, где транзакционная ложь? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть интеграционный тест, в котором я установил для транзакции значение false. В процессе разрыва я получаю сообщение об ошибке RaceGroup.list (). Each {it.delete (flush: true)}. Ошибка говорит о том, что операции записи не разрешены в режиме только для чтения. Поэтому я хотел знать, где установлен этот режим только для чтения. Это из-за транзакции == ложь, что эта ошибка приходит. Я ценю любые идеи. Спасибо!

class ProductControllerTests extends GroovyTestCase{

    static Log log = LogFactory.getLog(this)
    static transactional = false

    SpringSecurityService springSecurityService
    ProductController controller

    @Before
    void setUp(){
        super.setUp()
        springSecurityService.reauthenticate(User.first().email)
        assert springSecurityService.isLoggedIn()
        controller = new ProductController()
    }

    @After
    void tearDown(){            
        super.tearDown()
        OrderTemplateProduct.executeUpdate('delete OrderTemplateProduct')
        InventoryOrder.executeUpdate('delete InventoryOrder')
        RaceGroup.list().each{ it.delete(flush: true) }
        Director.executeUpdate('delete Director')
    }

Выдается следующая ошибка:

org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
    at product.ProductControllerTests$_tearDown_closure1.doCall(ProductControllerTests.groovy:52)
    at product.ProductControllerTests.tearDown(ProductControllerTests.groovy:52)


Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
    at product.ProductControllerTests$_tearDown_closure1.doCall(ProductControllerTests.groovy:52)
    at product.ProductControllerTests.tearDown(ProductControllerTests.groovy:52)
...