Seitenhistorie
...
Zweiter Fall: Es soll eine Sammelbearbeitung geben, bei der die Rechnungen mehrerer Kunden auf einmal bearbeitet werden. Grundsätzlich ist das schon mit dem Standard-Proxy-Interface oben möglich. Um die Performance zu verbessern, gibt es die Option eines weiteren Interface: "org.nuclos.api.rule.CollectiveProcessingProxy" fordert die Implementierung einer zusätzlichen Methode "getForCollectiveProcessing", mit der die Rechnungen mehrerer Kunden auf einmal geholt werden können:
Codeblock |
---|
package org.nuclet.businessentity; import java.util.*; import org.nuclos.api.businessobject.attribute.*; import org.nuclos.api.exception.*; import org.nuclos.api.rule.*; import org.nuclos.api.*; public class RechnungProxyImpl implements org.nuclet.businessentity.RechnungProxy, CollectiveProcessingProxy { private User user; public <PK> List getForCollectiveProcessing(ForeignKeyAttribute<PK> attribute, Collection<PK> ids) { if (attribute == Rechnung.KundeId) { List ret = new ArrayList<>(); // Fetch Rechnungen für several Kunden (ids) at once // ret.add(...); // return ret; } return null; // When null is returned, the standard proxy methods (like getByKunde()) will be called } public List<Rechnung> getByKunde(Long id) { // Rest is the same as before // ... |
...
Überblick
Inhalte