Jag hade precis samma problem, olika länkar föreslog att uppgradera fjädern till 4.0.1+ och viloläge till 4.3.x men detta gjorde ingen skillnad. Sedan hittade jag den här länken som löste mitt problem. Författaren skriver en anpassad ResultTransformer för Clob och ställer sedan in denna som transformator för din fråga istället för AliasToEntityMapResultTransformer.
http://javatechtricks.blogspot.co .uk/2012/12/hibernate-clob-to-string-conversion.html
Kod från artikeln nedan:
public class MyResultTransformer extends BasicTransformerAdapter {
public final static MyResultTransformer INSTANCE;
static {
INSTANCE = new MyResultTransformer();
}
private MyResultTransformer() {
}
private static final long serialVersionUID = 1L;
@Override
public Object transformTuple(Object[] tuple, String[] aliases) {
Map<String, Object> map = new HashMap<String, Object>();
for (int i = 0; i < aliases.length; i++) {
Object t = tuple[i];
if (t != null && t instanceof Clob) {
Clob c = (Clob) tuple[i];
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
IOUtils.copy(c.getAsciiStream(), bos);
t = new String(bos.toByteArray());
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
map.put(aliases[i], t);
}
return map;
}
}
Byt sedan ut
i din kodquery.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
med
query.setResultTransformer(MyResultTransformer.INSTANCE);
Dessutom kan en alternativ lösning vara att ändra kolumntyp, jag har inte provat det själv.
Källa:http://oreilly.com/java/excerpts/harnessing -hibernate/hibernate-types.html