-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: Problem inserting Entity with java.sql.Clob
PostPosted: Fri Apr 25, 2008 1:07 pm 
Newbie

Joined: Wed Aug 15, 2007 5:34 pm
Posts: 4
I have been trying to insert an entity with a field mapped as java.sql.Clob, an anotated as @Lob

This is the releveant part of my code for the operation
Code:
try {
         getArchivoConciliacionDao().createFlush(archivoConciliacion);
      } catch (EntidadNoGrabadaException e) {
         throw new ProcesarArchivoException("No se pudo grabar la cabecera del archivo. " + e.getMessage(), e
               .getCause());
      }

      if (contenidoXml != null) {
         try {
            getArchivoConciliacionDao().refresh(archivoConciliacion);
            archivoConciliacion.setArchivo(Hibernate.createClob(" "));
            
            OutputStream outputStream = archivoConciliacion.getArchivo().setAsciiStream(0);
            int size = 1024;
            byte[] buffer = new byte[size];

            int length = -1;
            int off = 0;
            while ((length = contenidoXml.read(buffer)) != -1) {
               outputStream.write(buffer, off, length);
               off += length;
            }

            outputStream.close();
         } catch (SQLException e) {
            e.printStackTrace();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }





I am always getting an java.lang.UnsupportedOperationException: Blob may not be manipulated from creating session in the line
Code:
OutputStream outputStream = archivoConciliacion.getArchivo().setAsciiStream(0);


What can be causing this ???

thanks a lot


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 25, 2008 7:49 pm 
Newbie

Joined: Wed Aug 15, 2007 5:34 pm
Posts: 4
I resolved this by modyfing the code:

Code:
try {
         archivoConciliacion.setArchivo(Hibernate.createClob(" "));
         getArchivoConciliacionDao().createFlush(archivoConciliacion);
      } catch (EntidadNoGrabadaException e) {
         throw new ProcesarArchivoException("No se pudo grabar la cabecera del archivo. " + e.getMessage(), e
               .getCause());
      }

      if (contenidoXml != null) {
         try {
            getArchivoConciliacionDao().refresh(archivoConciliacion);

            OutputStream outputStream = archivoConciliacion.getArchivo().setAsciiStream(0);

            Reader in = new InputStreamReader(contenidoXml);
            BufferedReader reader = new BufferedReader(in);

            char[] buffer = new char[1024];
            int bytes_read;
            while ((bytes_read = reader.read(buffer)) != -1) {
               outputStream.write(new String(buffer).getBytes(), 0, bytes_read);
            }

            outputStream.close();
         } catch (SQLException e) {
            e.printStackTrace();
         } catch (IOException e) {
            e.printStackTrace();
         }
      }


Top
 Profile  
 
 Post subject: temporary usage
PostPosted: Fri Apr 25, 2008 7:52 pm 
Newbie

Joined: Wed Aug 15, 2007 5:34 pm
Posts: 4
Hi

Now i have another question:

I've been monitoring the clob temporary of the database and, apparently, by using the method i described, the clob temporary is never used

So, is this a concern of performance in the Database ?? what space is used for the clob temporal storage ?

Or is none temporary storage used at all ??

thanks


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.