Maison >Java >javaDidacticiel >Comment puis-je étendre les référentiels JPA Spring Data avec des méthodes personnalisées ?

Comment puis-je étendre les référentiels JPA Spring Data avec des méthodes personnalisées ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 22:46:12430parcourir

How Can I Extend Spring Data JPA Repositories with Custom Methods?

Personnalisation de Spring Data JPA avec des méthodes supplémentaires

Dans Spring Data JPA, vous pouvez accéder sans effort aux fonctionnalités CRUD et Finder par défaut via une interface de référentiel. La personnalisation des chercheurs est également simple. Cependant, lorsqu'il s'agit d'ajouter des méthodes personnalisées complètes avec leur implémentation, l'approche de l'interface devient limitée.

Pour surmonter ce problème, vous pouvez créer une interface distincte pour héberger vos méthodes personnalisées :

public interface AccountRepository 
    extends JpaRepository<Account, Long>, AccountRepositoryCustom { ... }

public interface AccountRepositoryCustom {
    public void customMethod();
}

Ensuite, fournissez une classe d'implémentation pour l'interface des méthodes personnalisées :

public class AccountRepositoryImpl implements AccountRepositoryCustom {

    @Autowired
    @Lazy
    AccountRepository accountRepository;  /* Optional - if you need it */

    public void customMethod() { ... }
}

Avec cette approche, vous pouvez étendre les fonctionnalités de votre référentiel Spring Data JPA avec des méthodes personnalisées tout en conservant la séparation des préoccupations.

Ressources supplémentaires :

  • [Implémentations de référentiels personnalisés](https://docs.spring.io/spring-data/jpa/docs/ current/reference/html/#repositories.custom-implementations)
  • [Schéma de dénomination Changement](https://stackoverflow.com/a/52624752/66686)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn