Это может быть довольно просто, но я провел часы в Google, но не смог найти ответ.Hibernate select query with different where where
Я пытаюсь ввести нижеследующую логику в спящий режим, но я не могу понять, как это сделать. Это моя настройка: база данных Mysql с двумя таблицами T1 (ID, C1, C2) и T2 (столбец1, столбец2, столбец3). Это то, что я хочу, чтобы реализовать
results = select ID, from T1 //This will result in multiple rows.
for(eachRow in results)
{
select column1,column2,column3 from T2 where ID=eachRow.ID
//Do some computation like
//Assign value of table "T1" column "C1" to table "T2" column "column1"
column1 = eachRow.C1
}
Сейчас я мог думать о логике чтения всей таблицы с помощью Hibernate «из» пункта в список и итерацию через него. Однако это может привести к исключению OutOfMemory. Не могли бы вы предложить, как должен быть HQL?
Это то, что я сделал
Session session = HibernateSession.getSessionFactory().openSession();
Transaction aTableTx = null;
try {
aTableTx = session.beginTransaction();
_allRows = session.createQuery("from T1").list();
for (Iterator<T1> iterator = _allRows.iterator(); iterator.hasNext();)
{
T1 aRow = iterator.next();
//Here I am planning to run a similar to
//_allRows = session.createQuery("from T2").list();
//Store the result and iterate through the list, but
//it is very inefficient.
}
aTableTx.commit();
Прежде всего, HQL не работает на столах, но и на юридических лиц. Покажите нам свои сущности, а не таблицы. –
Согласен, я сопоставил таблицы классу с помощью аннотаций. Итак, теперь у меня есть 2 класса T1 и T2, как я могу поставить вышеупомянутый запрос mysql в HQL. – girish
Запрос HQL будет почти идентичен SQL-запросу. Вы прочитали документацию по HQL? Что вы пробовали? –