Se la lunghezza del CLOB è sufficientemente piccola ( <Integer.MAX_VALUE
) puoi fare quanto segue :
clob.getSubString(1, (int) clob.length());
(Basta dare un'occhiata a questa domanda )
MODIFICA :
Il codice che hai inviato nella tua domanda dovrebbe diventare:
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);
Tieni presente che il ciclo nel tuo codice originale era assolutamente inutile, quindi l'ho rimosso.
Verifica anche che result[1]
è un java.sql.Clob