Я не знаю объяснения для этого решения, но я знаю, что можно моделировать некоторые преимущества многопоточного программирования с помощью setTimeout. Можно дать иллюзию нескольких процессов, делающих вещи одновременно, хотя в действительности, все происходит в одном потоке.
Просто имеют Вашу функцию, делают определенную работу, и затем называют что-то как:
setTimeout(function () {
... do the rest of the work...
}, 0);
И любые другие вещи, которые нуждаются в выполнении (как обновления UI, изображения с анимацией, и т.д.) произойдет, когда они получают шанс.
255 - размер по умолчанию для байта []. Укажите максимальный размер для отчета в ограничениях в соответствии с вашими требованиями. Примерно так:
static constraints = {
report(maxSize: 50000000)
}
В зависимости от максимального размера будет установлен тип поля в БД. (средний, длинный и т. д.)
Попробуйте явно установить тип как «большой двоичный объект» или «двоичный», например, вы можете добавить следующее в класс домена:
static mapping = {
report type:'blob'
}
Вот статья в блоге , которая обещает решить эту проблему. Уловка, похоже, состоит в том, чтобы иметь поле типа java.sql.Blob
с полем byte []
, производным от этого и отмеченным как временное.