[Grails] grails不能存储文件到数据库里?!!

casephoen 2008-03-01
执行官方网站的一个文件上传例子,发现uploadfile.save()时报错(save调用前打印上传的文件内容正常)
看起来好像是dao底层实现有问题

Message: could not insert: [UploadFile]; nested exception is org.hibernate.exception.DataException: could not insert: [UploadFile]
Caused by: org.springframework.dao.InvalidDataAccessResourceUsageException: could not insert: [UploadFile]; nested exception is org.hibernate.exception.DataException: could not insert: [UploadFile]
Class: UploadFileController
At Line: [26]
Code Snippet:

26: if (!uploadFile.save()) {
27: println 'not saved....'

Stack Trace
org.codehaus.groovy.runtime.InvokerInvocationException: org.springframework.dao.InvalidDataAccessResourceUsageException: could not insert: [UploadFile]; nested exception is org.hibernate.exception.DataException: could not insert: [UploadFile]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:92)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:226)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:899)
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:946)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:740)
at groovy.lang.Closure.call(Closure.java:292)
at groovy.lang.Closure.call(Closure.java:287)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleAction(SimpleGrailsControllerHelper.java:525)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.executeAction(SimpleGrailsControllerHelper.java:398)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:237)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:153)
at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:88)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:251)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
at org.springframework
totong 2008-03-06
遇到过类似问题,可以上传文件啊
数据类型用byte[] 可以设置maxSize来决定到底使用什么类型的blob
casephoen 2008-03-24
呵呵,就是byte[]不能插入mysql数据库,另外发现Boolean对应checkbox在mysql下也有问题,在自带的数据库则没问题
不过没关系,反正有回避的办法,哈哈
ctong721 2008-03-28
试一下改变grails的hibernate方言配置,def dialect = org.hibernate.dialect.MySQLInnoDBDialect
如果不配置,grails使用默认的引擎与MySQL通信.
copoplar 2008-03-31
刚才想发一个帖子,发现需要加入圈子,山风小子赶紧批准我噢!

现在借宝地把自己刚发现的一个小问题说一下:

今天在grails中建立一个domain ,用的名字Group,结果发现在MySql里面不建表。试了三次都不行。其他的名字都可以。不知道为啥。没有办法,俺改名为Groups就行了。感觉是Group好像被系统占用了,哪位大侠知道具体原因,请告诉俺啊。
agile_boy 2008-04-01
to copoplar,
此圈子现在不需要审批的,所有申请自动通过,就是希望所有Groov/Grails爱好者能无拘无束的在此交流!

你的group应该是mysql的关键字吧,如果你的表中出现了数据库的关键字,那肯定会报错的。
另外Groovy中文社区也是不错的地方哦,主要是论坛和文档翻译
Global site tag (gtag.js) - Google Analytics