JpaPaymentRepository.java
package com.dmasone.identity.payment.infrastructure.persistence;
import com.dmasone.identity.payment.domain.PaymentAttempt;
import com.dmasone.identity.payment.domain.PaymentRepository;
import java.util.Optional;
import java.util.UUID;
import org.springframework.stereotype.Repository;
/**
* Adapter between the payment repository port and JPA.
*/
@Repository
public class JpaPaymentRepository implements PaymentRepository {
private final SpringDataPaymentJpaRepository jpaRepository;
public JpaPaymentRepository(SpringDataPaymentJpaRepository jpaRepository) {
this.jpaRepository = jpaRepository;
}
@Override
public PaymentAttempt save(PaymentAttempt paymentAttempt) {
return jpaRepository.save(PaymentJpaEntity.from(paymentAttempt)).toDomain();
}
@Override
public Optional<PaymentAttempt> findByOrderId(UUID orderId) {
return jpaRepository.findByOrderId(orderId).map(PaymentJpaEntity::toDomain);
}
}