Skip to main content

Interface JPA do Repository

A interface JPA do repository define os métodos específicos para interagir com o banco de dados usando JPA (Java Persistence API). Ela estende a interfaces ArchbaseCommonJpaRepository, para aproveitar funcionalidades prontas de CRUD e mais, facilitando a implementação e manutenção do acesso a dados.

package com.webpublico.ead.infrastructure.persistence.repository.jpa.academico;

import br.com.archbase.ddd.infraestructure.persistence.jpa.repository.ArchbaseCommonJpaRepository;
import com.webpublico.ead.infrastructure.persistence.entity.academico.TopicoEntity;
import org.springframework.stereotype.Repository;

@Repository
public interface TopicoJpaRepository extends ArchbaseCommonJpaRepository<TopicoEntity, String, Long> {
}

Explicação

Localização no Pacote: A interface JPA do repository é colocada no pacote infrastructure.persistence.repository.jpa para claramente separá-la das interfaces de repository de domínio, que residem no pacote domain. Isso segue o princípio de separação de preocupações, mantendo a configuração e implementação específicas de persistência isoladas do modelo de domínio e da lógica de negócio.

Uso de @Repository: A anotação @Repository é usada para indicar que a interface é um componente do Spring, especificamente um repository. Isso permite que o Spring trate exceções de persistência e as traduza em exceções da sua própria hierarquia de exceções consistente com a plataforma Spring.

Extensão de ArchbaseCommonJpaRepository: Esta interface genérica provê métodos padrão de CRUD, além de outros como paginação e ordenação. O uso desta interface base facilita a criação de repositories sem necessidade de implementar métodos comuns, tornando o código mais limpo e fácil de manter.