#java #hibernate
#java #спящий режим
Вопрос:
Я извлекаю список объектов из session.CreateSQLQuery(). Я не создавал для него никаких классов pojo, потому что я не хочу, чтобы этот объект содержал 2 переменные, я хочу получить эти переменные, которые я могу
Мой код
session = sessionfactory.openSession() ;
query = session.createSQLQuery("select id from A_Cleanup") ;
List Ids = query.list() ;
for (Iterator iterator = Ids.iterator(); iterator.hasNext(); iterator.next()){
query = session.createSQLQuery("select distinct rec_category, a_id from a_cdr where a_id in (select id from alerts where al_id = :aid)")
.setParameter("aid", Long.parseLong(Ids.get(0).toString())) ;
java.util.List result = query.list() ;
System.out.println("printing class object" result.get(0).getClass()) ;
}
session.close() ;
Вопрос:
result.get(0) — это объект, содержащий значение rec_category и a_id. Как я могу получить эти переменные?
Ответ №1:
result.get(0)
Возвращает значение an Object[]
(в данном случае с 2 элементами). Поэтому сначала приведите его к Object[]
, затем извлеките каждый элемент отдельно и приведите их к соответствующим типам.
Object[] foo = (Object[]) result.get(0);
System.out.println(foo[0] " and " foo[1]); // Then cast each one to their real types
Комментарии:
1. Как я могу получить каждый из них после приведения object []?
2. Конечно, вы знаете, как работать с массивами. Если нет, то довольно странно, что вы будете работать с гибернацией.