Ik had net hetzelfde probleem, verschillende links stelden voor om de lente te upgraden naar 4.0.1+ en de slaapstand naar 4.3.x, maar dit maakte geen verschil. Toen kwam ik deze link tegen die mijn probleem oploste. De auteur schrijft een aangepaste ResultTransformer voor de Clob en stelt deze vervolgens in als de transformator voor uw query in plaats van AliasToEntityMapResultTransformer.
http://javaechtricks.blogspot.co .uk/2012/12/hibernate-clob-to-string-conversion.html
Code uit onderstaand 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;
}
}
Vervang dan in uw code
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
met
query.setResultTransformer(MyResultTransformer.INSTANCE);
Daarnaast zou een alternatieve oplossing kunnen zijn om het kolomtype te wijzigen, ik heb het zelf niet geprobeerd.
Bron:http://oreilly.com/java/excerpts/harnessing -hibernate/hibernate-types.html