Files
spring-boot-rest/spring-data-jpa/src/main/java/com/baeldung/ddd/event/DomainService.java
2018-09-08 02:40:24 +02:00

32 lines
856 B
Java

/**
*
*/
package com.baeldung.ddd.event;
import javax.transaction.Transactional;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
@Service
public class DomainService {
private final ApplicationEventPublisher eventPublisher;
private final AggregateRepository repository;
public DomainService(AggregateRepository repository, ApplicationEventPublisher eventPublisher) {
this.repository = repository;
this.eventPublisher = eventPublisher;
}
@Transactional
public void serviceDomainOperation(long entityId) {
repository.findById(entityId)
.ifPresent(entity -> {
entity.domainOperation();
repository.save(entity);
eventPublisher.publishEvent(new DomainEvent());
});
}
}