2011-03-06 5 views
1

J'ai un champ db varchar ressemble le résultat de sérialisation Java StringBuffer:deserialize StringBuffer

 
íjava.lang.StringBuffer [many random characters here removed for this question] 

comment puis-je désérialiser en chaîne?

+0

Votre question n'est pas claire du tout. Pourriez-vous poster la classe que vous mappez, et tout fichier XML Hibernate pertinent? Et expliquez ce que vous voulez dire par "J'ai converti le champ de classe java en String et je veux faire une conversion de base de données"? –

+0

s'il vous plaît voir mise à jour – user121196

+0

S'il vous plaît revenir à cette édition Vanchinathan - vous avez cassé la question! – tgdavies

Répondre

2

Essentiellement, vous devez faire ceci:

byte[] varcharContents = ... // get the bytes of the field, not via a String 
ObjectInputStream ois = 
    new ObjectInputStream(new ByteArrayInputStream(varcharContents)); 
StringBuffer sb = (StringBuffer)ois.readObject(); 
String s = sb.toString(); 

Vous aurez à espérer que vous pouvez vraiment obtenir les octets originaux produits par la sérialisation en arrière, et qu'ils n'ont pas été transformé en route pour et de la DB.