Jeg har lige haft det samme problem, forskellige links foreslog at opgradere foråret til 4.0.1+ og dvale til 4.3.x, men dette gjorde ingen forskel. Så stødte jeg på dette link, som løste mit problem. Forfatteren skriver en brugerdefineret ResultTransformer til Clob og indstiller denne som transformatoren for din forespørgsel i stedet for AliasToEntityMapResultTransformer.
http://javatechtricks.blogspot.co .uk/2012/12/hibernate-clob-to-string-conversion.html
Kode fra artiklen nedenfor:
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;
}
}
Erstat derefter
i din kodequery.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
med
query.setResultTransformer(MyResultTransformer.INSTANCE);
Derudover kunne en alternativ løsning være at ændre kolonnetypen, jeg har ikke selv prøvet det.
Kilde:http://oreilly.com/java/excerpts/harnessing -hibernate/hibernate-types.html