Nếu độ dài của CLOB đủ nhỏ (<Integer.MAX_VALUE
) bạn có thể làm như sau:
clob.getSubString(1, (int) clob.length());
(Chỉ cần xem qua câu hỏi này )
CHỈNH SỬA:
Mã bạn đã gửi trong câu hỏi của mình sẽ trở thành:
String sql = "select id, data from mytable";
List< Object[] > results = getEntityManager().createNativeQuery(sql).getResultList();
Map< Long, String > map = new HashMap<>();
Clob clob = (Clob)result[1];
String value = clob.getSubString(1, (int) clob.length());
map.put(((Number) result[0]).longValue(), value);
Xin lưu ý rằng vòng lặp trong mã ban đầu của bạn hoàn toàn vô dụng nên tôi đã xóa nó.
Đồng thời kiểm tra result[1]
là một java.sql.Clob