[
https://issues.apache.org/jira/browse/CAUSEWAY-3772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andi Huber resolved CAUSEWAY-3772.
----------------------------------
Resolution: Resolved
Fixed 2 fold:
# previously we made sure we have a new DataTableInteractive on every partial
page update
# re-hydrate elements of DataTableInteractive on entry to partial page update
> Sorting on a collection of view models, hitting hollow exception
> ----------------------------------------------------------------
>
> Key: CAUSEWAY-3772
> URL: https://issues.apache.org/jira/browse/CAUSEWAY-3772
> Project: Causeway
> Issue Type: Bug
> Components: Viewer Wicket
> Affects Versions: 2.0.0
> Reporter: Daniel Keir Haywood
> Assignee: Andi Huber
> Priority: Major
> Fix For: 2.1.0, 3.1.0
>
> Attachments: stacktrace-3772.txt
>
>
> InvoiceSummary is an entity
>
> Its collection of getInvoices is a repository query:
> @Collection
> public List<InvoiceForLease> getInvoices() {
> return invoiceForLeaseRepository.find....();
> }
>
> Its collection "invoicesDocsFra" is derived, returning view model for each
> entity.
>
> public class InvoiceSummary_invoiceDocsFra {
> private final InvoiceSummary invoiceSummary;
> public List<DocAndCommFra> coll() {
> return invoiceSummary.streamInvoices()
> .map(docAndCommFactory::instantiate)
> .collect(Collectors.toList());
> }
> }
>
> the DocAndCommFra is a view model that wraps each invoice:
> @Named(DocAndCommFra.LOGICAL_TYPE_NAMED)
> @DomainObject(nature = Nature.VIEW_MODEL)
> @DomainObjectLayout
> @NoArgsConstructor
> @AllArgsConstructor(access = AccessLevel.PACKAGE)
> public final class DocAndCommFra {
> public static final String LOGICAL_TYPE_NAMED =
> "outgoing.invoiceforlease.DocAndCommFra";
> @Property
> @PropertyLayout(sequence = "1")
> @Getter @Setter
> private InvoiceForLease invoice;
> @Property
> @PropertyLayout(sequence = "1.3")
> public Lease getLease() {
> return getInvoice().getLease();
> }
> @Property()
> @PropertyLayout(sequence = "1.4")
> public CommunicationChannel getSendTo() {
> return getInvoice().getSendTo();
> }
> ...
> }
>
> it's possible to sort the "docAndCommsFra" table on invoice, and on lease,
> but not on sendTo. Note that CommunicationChannel is abstract, subtypes are
> either EmailAddress or PostalAddress.
> [^stacktrace-3772.txt]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)