Я работаю над выборкой данных, используя Tuple, который извлекает все данные из одной таблицы, а также получает объект Set a8spt096sList, связанный с сущностью таблицы 97.
Выборка кортежа t097Journals , кажется, работает, потому что я извлекаю данные и все поля таблицы 96 и 97 без ошибок. Но когда я пытаюсь отобразить информацию из t097Journals в arrayList типа A8SPT097S , например, в поле journalEntryId , я получаю высказывание, что java.lang.IllegalArgumentException: неизвестный псевдоним [journalEntryId] .
Есть ли что-то, что мне нужно добавить в операторы tp.get для извлечения определенного поля в карте потока?
try {
List<Tuple> t097Journals = samsSessionFactory.getCurrentSession().createQuery(
" SELECT t097s as t097s "
+ " FROM A8SPT097S t097s "
+ " WHERE t097s.journalEntryId >= :wkJournalEntry "
+ " AND t097s.postDate >= :wkStartDate "
+ " AND t097s.postDate <= :wkEndDate "
+ " AND t097s.casePrefix <= '998' "
+ " ORDER BY t097s.casePrefix, t097s.caseNumber, t097s.journalEntryId ", Tuple.class)
.setParameter("wkStartDate", startDate)
.setParameter("wkEndDate", endDate)
.setParameter("wkJournalEntry", startJE)
.getResultList();
List<A8SPT097S> journalList = new ArrayList<>();
t097Journals.stream().map((tp) -> {
A8SPT097S t097s = new A8SPT097S();
t097s.setJournalEntryId((Integer) tp.get("journalEntryId"));
t097s.setAccountingEvent((String) tp.get("accountingEvent"));
t097s.setPostDate((String) tp.get("postDate"));
t097s.setCasePrefix((String) tp.get("casePrefix"));
t097s.setCaseNumber((String) tp.get("caseNumber"));
t097s.setA8spt096SList((Set<A8SPT096S>) tp.get("a8spt096SList"));
return t097s;
}).forEachOrdered((t097s) -> {
journalList.add(t097s);
});
Спасибо