Вопрос выборки полей в структуре данных кортежа с использованием карты потоков - PullRequest
0 голосов
/ 17 октября 2019

Я работаю над выборкой данных, используя 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);
        });

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...