SpringDataUtilBasedAggregatePersistenceSupport.java
package io.vanillabp.integration.utils.impl;
import io.vanillabp.integration.spi.aggregate.AggregatePersistenceAware;
import io.vanillabp.integration.utils.SpringDataUtil;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class SpringDataUtilBasedAggregatePersistenceSupport<A> implements AggregatePersistenceAware<A> {
private final SpringDataUtil springDataUtil;
private final Class<A> aggregateClass;
@Override
public Class<A> getAggregateClass() {
return aggregateClass;
}
@Override
public A save(
A aggregate) {
return springDataUtil
.getRepository(aggregate)
.save(aggregate);
}
@Override
public Object getAggregateId(
A aggregate) {
return springDataUtil
.getId(aggregate);
}
}