Saya baru saja mengalami masalah yang sama, berbagai tautan menyarankan untuk memutakhirkan pegas ke 4.0.1+ dan hibernasi ke 4.3.x tetapi ini tidak ada bedanya. Kemudian saya menemukan tautan ini yang menyelesaikan masalah saya. Penulis menulis ResultTransformer kustom untuk Clob dan kemudian menetapkan ini sebagai transformator untuk kueri Anda alih-alih AliasToEntityMapResultTransformer.
http://javatechtricks.blogspot.co .uk/2012/12/hibernate-clob-to-string-conversion.html
Kode dari artikel di bawah ini:
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;
}
}
Kemudian di kode Anda ganti
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
dengan
query.setResultTransformer(MyResultTransformer.INSTANCE);
Selain itu, solusi alternatifnya bisa dengan mengubah jenis kolom, saya sendiri belum mencobanya.
Sumber:http://oreilly.com/java/excerpts/harnessing -hibernate/hibernate-types.html