Добрый день!
Есть сущность ServiceOrder, которая включает в себя коллекцию сущностей ServiceOrderItem, которая в свою очередь включает в себя коллекцию сущностей ServiceOrderItemDetail
Необходимо сделать две таблицы:
в одну вывести список ServiceOrderItem
в другую список ServiceOrderItemDetail
Загружаю данные о ServiceOrder так
<instance id="serviceOrderDc" class="ServiceOrder" view="serviceOrder-view"> <loader/> <collection id="serviceOrderItemsDc" property="serviceOrderItems"> <collection id="serviceOrderItemDetailsDc" property="serviceOrderItemDetails"> </collection> </collection> </instance>
с первой таблицей проблем нет, но во второй когда добавляю колонки из ServiceOrderItemDetail
<groupTable id="serviceOrdersTableDetail" height="auto" width="100%" dataContainer="serviceOrderItemsDc" editable="true"> <columns> <group> <column id="serviceGroup.name"/> </group> <column id="serviceOrderItemDetails.quantityFact" editable="true"/> </columns> </groupTable>
при раскрытии таблицы появляется ошибка:
IllegalArgumentException: Cannot format given Object as a Number
Если указываю dataContainer=“serviceOrderItemDetailsDc”, то список ServiceOrderItemDetail отображается корректно, но только по тому ServiceOrderItem, который выделен на первой таблице. А нужно, чтобы список был по всем ServiceOrderItem.
Пыталась сделать загрузку списка ServiceOrderItemDetail отдельным лоадером
<collection id="serviceOrderItemDetailsFull" class="com.elgsys.wld.entity.ServiceOrderItemDetail" view="serviceOrderItemDetail-view"> <loader id="serviceOrderItemDetailsFullDl"> <query> <![CDATA[select e from ServiceOrderItemDetail e]]> <condition> <and> <jpql> <where>e.serviceOrderItem.serviceOrder = :serviceOrder</where> </jpql> </and> </condition> </query> </loader> </collection> </data>
но в таком случае список ServiceOrderItemDetail загружается из базы и в случае добавления или удаления элементов на экране изменения не отображаются во второй таблице.
Подскажите, пожалуйста, можно ли параллельно в две таблицы вывести данные из коллекции разной степени глубины, чтобы изменения в первой отображались в другой.
Изменения такие: в зависимости от значения поля ServiceOrderItem(количество) создается коллекция ServiceOrderItemDetail и так для каждого ServiceOrderItem. Как создать коллекцию я знаю, вопрос в том, как ее отобразить во второй таблице.
Нужно примерно так:
Первая таблица:
ServiceOrderItem1
ServiceOrderItem2
Вторая таблица:
ServiceOrderItem1(количество=2)
ServiceOrderItemDetail11
ServiceOrderItemDetail12
ServiceOrderItem2(количество=1)
ServiceOrderItemDetail21
Заранее спасибо!