Class excepción de lanzamiento en Groovy
Quiero subir una imagen usando un groovy en griales. Mi página gsp es la siguiente (estoy mostrando una versión simplificada del original)
<g:form controller="post" action="save" enctype="multipart/form-data">
My picture <input type="file" name="myPicture" />
<g:submitButton name="submit" value="Save"/>
</g:form>
Mi clase de dominio es la siguiente:
class Post {
byte[] myPicture
static mapping = {
myPicture type: "blob"
}
Necesito esta asignación, de lo contrario, MySql creará un bloque pequeño que es demasiado pequeño para adaptarse a las imágenes
static constraints = {
myPicture(nullable:false)
}
}
En el controlador tengo una acción llamada guardar que es la siguiente:
def save = {
def post = loadPost(params.id)
post.properties = params
if(post.save()) {
print "hallo world"
redirect(action:'list', params:params)
} else {
render(view:'edit', model:[post:post])
}
}
La excepción se produce cuando intento guardar la imagen en la base de datos.
2009-04-27 18:16:07,319 [20806951@qtp0-0] ERROR errors.GrailsExceptionResolver - java.lang.ClassCastException: [B cannot be cast to java.sql.Blob
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.ClassCastException: [B no se puede enviar a java.sql.Blob
¿Alguna pista de por qué es esto?
BTW, he visto en un tutorial que las imágenes se manejan como cadenas pero no funcionó tan bien.