Это довольно специфический путь обновления, но я его использую. Думаю, я тоже пытался перейти на 1.1, и у меня была та же проблема, но не уверен на 100%.
Во всяком случае, я на 1.1-бета3 и внедрил систему загрузки / вложения файлов, как описано здесь: thegioraproject.com/2008/03/26/image-attachments-in-grails-using-imagemagick/
У меня есть объект «брокер», который имеет «логотип» (определяется как домен изображения). Изображение и вложение (родительский класс) выполняются так, как определено в приведенном выше URL.
В контроллере брокера у меня есть такой код:
def file = new Image()
def f = params.logo
if(f.size>0) {
file.setFile(f)
file?.save(flush:true)
brokerUserInstance.logo?.delete()
brokerUserInstance.logo = file
}
«Логотип» - это имя загруженного файла из формы. После этого кода есть более стандартный CRUD-код Grails (brokerUserInstance.properties=params
, brokerUserInstance.save()
и т. Д.).
Это прекрасно работает в 1.1-бета3. Я могу загрузить изображение, оно будет прикреплено и прикреплено к домену (отношения в БД и т. Д.). Когда я обновляю объект посредника, не загружая новое изображение, старое оно остается неизменным.
Переход к Grails 1.1.1, когда я пытаюсь загрузить новое изображение, я получаю:
Error 500: org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance - save the transient instance before flushing: Image; nested exception is org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: Image
и если я не загружаю изображение, я получаю:
[org.springframework.web.multipart.commons.CommonsMultipartFile] to required type [Image] for property logo; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [org.springframework.web.multipart.commons.CommonsMultipartFile] to required type [Image] for property logo: no matching editors or conversion strategy found
Мне удалось найти 0 по этому вопросу. Хорошо работает в 1.1-бета3, но что-то изменилось (кардинально) в 1.1.1 (и, вероятно, также в 1.1).
Есть предложения / идеи / помощь? Я рад предоставить доступ к серверу кому-то, чтобы помочь отладить это.
Спасибо:)