Просто чтобы улучшить другие ответы, ScrollableResults
выполняет преобразование сущности для вас, хотя это не сразу понятно из Javadocs.
Как говорит @Bozho, вызов sr.get()
вернет сущность в текущем местоположении, но обернутую в массив. При просмотре кода для ScrollableResultsImpl
результат текущей строки устанавливается с помощью:
if ( result != null && result.getClass().isArray() ) {
currentRow = (Object[]) result;
} else {
currentRow = new Object[] { result };
}
Так что ScrollableResults.get()
всегда возвращает массив результатов, и если ваша сущность не массив, она будет на get()[0]
.
Итак, с вашим кодом вы бы сделали что-то вроде:
while (sr.next()) {
// get the entity which is the first element in an Object[]
Employee employee = sr.get()[0];
...
}