Tôi vừa gặp vấn đề tương tự, nhiều liên kết khác nhau đề xuất nâng cấp spring lên 4.0.1+ và hibernate lên 4.3.x nhưng điều này không tạo ra bất kỳ sự khác biệt nào. Sau đó, tôi xem liên kết này đã giải quyết vấn đề của tôi. Tác giả viết một ResultTransformer tùy chỉnh cho Clob và sau đó đặt nó làm biến áp cho bạn truy vấn thay vì AliasToEntityMapResultTransformer.
http://javatechtricks.blogspot.co .uk / 2012/12 / hibernate-clob-to-string-convert.html
Mã từ bài viết dưới đây:
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;
}
}
Sau đó, trong mã của bạn thay thế
query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
với
query.setResultTransformer(MyResultTransformer.INSTANCE);
Ngoài ra, một giải pháp thay thế có thể là thay đổi loại cột, tôi chưa tự mình thử.
Nguồn: http://oreilly.com/java/excerpts/harnessing -hibernate / hibernate-styles.html