Если вы используете Grails, вы можете попробовать использовать
MyDomainClass.withTransaction {
// Code within the transaction goes here
}
как альтернатива аннотации транзакции. Если код работает с этим подходом, вы можете быть уверены, что причиной проблемы является аннотация (хотя я понимаю, что вам может не понравиться это как постоянное решение).