这是一个相当具体的升级路径,但它就是我的目标。我想我也试过去1.1,并且有同样的问题,但不是100%肯定。
无论如何,我正在使用1.1-beta3并实施了文件上传/附件系统,如下所述:thegioraproject.com/2008/03/26/image-attachments-in-grails-using-imagemagick/
我有一个'broker'对象,它有一个'logo'(定义为Image域)。图像和附件(父类)按照上面的URL中的定义完成。
在brokerController中,我有这样的代码:
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
}
'logo'是表单中上传文件的名称。在此代码之后,有更多标准grails CRUD代码(brokerUserInstance.properties=params
,brokerUserInstance.save()
等)。
这在1.1-beta3中运行良好。我可以上传一个图像,它会被缩略图并附加到域中就好了(数据库中的关系等等)。当我更新代理对象而不上传新图像时,旧图像保持不变。
转到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-beta3中运行良好,但在1.1.1(也可能是1.1)中发生了一些变化(显着)。
任何建议/想法/帮助?我很乐意授予某人服务器访问权限,以帮助调试。
谢谢:)