Dodatkowe interfejsy nad interfejsami Spring Data JPA

0

Robicie dodatkowe interfejsy nad interfejsemi repozytoriów Spring Data JPA czy to nie ma sensu? Zmienialiście w ogóle kiedyś implementacje repository w projekcie? Mówię o czymś takim:

@Repository
@RequiredArgsConstructor
class JpaUserRepositoryAdapter implements UserRepository {

    private final JpaUserRepository jpaUserRepository;

    @Override
    public User add(User user) {
        return jpaUserRepository.save(user);
    }

    @Override
    public Optional<User> getByMail(String mail) {
        return jpaUserRepository.findByMail(mail);
    }

    @Override
    public Optional<User> getByPasswordResetToken(UUID passwordResetToken) {
        return jpaUserRepository.findByPasswordResetToken(passwordResetToken);
    }

    @Override
    public boolean existsByMail(String mail) {
        return jpaUserRepository.existsByMail(mail);
    }
}
0

Dodatkowe interfejsy są spoko gdy chcesz ograniczyć ilość operacji w dalszych warstwach aplikacji.
W jakimś bardziej skomplikowanym projekcie pewnie bym używał, w crudzie gdzie encja jest sercem aplikacji (mam teraz taki) pewnie nie...

1

Ja używam zawsze, jeśli w modelach zwracanych z interfejsów JPA jest cokolwiek związanego z JPA. Np jak w tym User byłaby jakakolwiek adnotacja z JPA, to już bym tego nie wsadził do logiki, tylko wydzielił.

1 użytkowników online, w tym zalogowanych: 0, gości: 1