Guarde Su Primera Entrada de Pago
El artefacto de pago-almacén-mongo introduce un Spring Bean of MongoPaymentWarehouse en su aplicación.
Esta clase implementa el PaymentWarehouse interfaz.
Esta interfaz es el punto de entrada a la aplicación.
Para guardar su primera Entrada de Pago, simplemente llame al save(PaymentEntry paymentEntry) método.
A continuación se presenta un ejemplo.
package com.iconsolutions.ipf.core.warehouse.port.mongo;
import com.iconsolutions.ipf.core.shared.domain.context.ProcessingContext;
import com.iconsolutions.ipf.core.shared.domain.context.UnitOfWorkId;
import com.iconsolutions.ipf.core.warehouse.BusinessDataEntry;
import com.iconsolutions.ipf.core.warehouse.PaymentEntry;
import com.iconsolutions.ipf.core.warehouse.PaymentEntryId;
import com.iconsolutions.ipf.core.warehouse.PaymentEntryType;
import com.iconsolutions.ipf.core.warehouse.port.PaymentWarehouse;
import lombok.RequiredArgsConstructor;
import reactor.core.publisher.Mono;
import java.util.List;
@RequiredArgsConstructor
public class ExampleSave {
private final PaymentWarehouse paymentWarehouse;
public Mono<PaymentEntry> save() {
var unitOfWorkId = UnitOfWorkId.createRandom();
var parentUnitOfWorkId = UnitOfWorkId.createRandom();
var businessData = List.of(BusinessDataEntry.builder().objectId("xyz").build());
var paymentEntry = PaymentEntry.builder()
.id(PaymentEntryId.of("association", 1))
.processingContext(ProcessingContext.of(unitOfWorkId))
.relatedUnitOfWorkId(parentUnitOfWorkId)
.globalState("PENDING")
.type(PaymentEntryType.TRANSACTION)
.data(businessData)
.build();
return paymentWarehouse.save(paymentEntry);
}
}
ttl y expiryDate Los campos no necesitan ser establecidos al guardar un PaymentEntry.
Estos campos se establecen cuando Mantenimiento del hogar is triggered y determine la expiración del objeto PaymentEntry.
Si establece estos campos, estará controlando manualmente la expiración de sus objetos en lugar de delegarla a la Mantenimiento del hogar proceso.
Para más detalles sobre estos dos campos, consulte Conjunto ttl y expiryDate campos .
|
Los campos en el PaymentEntry los objetos están intencionadamente definidos de manera laxa (como globalState) para que los campos puedan ser adaptados a sus casos de uso específicos.
|