2011-03-06 3 views
1

У меня есть поле VARCHAR дб выглядит как результат Java StringBuffer серийность:Deserialize StringBuffer

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

как я десериализация его в String?

+0

Ваш вопрос не совсем ясен. Не могли бы вы опубликовать класс, который вы сопоставляете, и любой соответствующий Hibernate XML? И объясните, что вы подразумеваете под «Я преобразовал поле класса Java в String, и я хочу сделать преобразование базы данных»? –

+0

см. Обновление – user121196

+0

Пожалуйста, верните, что редактирование Vanchinathan - вы нарушили вопрос! – tgdavies

ответ

2

По сути вы должны сделать это:

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(); 

Вы должны будете надеяться, что вы действительно можете получить исходные байты, полученные с помощью сериализации назад, и что они не были преобразованы на пути к и из БД.