Ich hatte gerade das gleiche Problem, verschiedene Links schlugen vor, Spring auf 4.0.1+ zu aktualisieren und auf 4.3.x in den Ruhezustand zu versetzen, aber das machte keinen Unterschied. Dann bin ich auf diesen Link gestoßen, der mein Problem gelöst hat. Der Autor schreibt einen benutzerdefinierten ResultTransformer für den Clob und legt diesen dann anstelle von AliasToEntityMapResultTransformer als Transformer für Ihre Abfrage fest.
http://javatechtricks.blogspot.co .uk/2012/12/hibernate-clob-to-string-conversion.html
Code aus dem folgenden Artikel:
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;
}
}
Ersetzen Sie dann in Ihrem Code
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
mit
query.setResultTransformer(MyResultTransformer.INSTANCE);
Außerdem könnte eine alternative Lösung darin bestehen, den Spaltentyp zu ändern, ich habe es selbst nicht versucht.
Quelle:http://oreilly.com/java/excerpts/harnessing -hibernate/hibernate-types.html