La mise en œuvre de CrudRepository au Printemps. Quel est le meilleur modèle à suivre?

J'ai de l'Utilisateur du Référentiel étendre à partir de la CrudRepository comme ci-dessous

public interface UserRepository extends CrudRepository<User, Long>, DatatablesCriteriasRepository<User> 

DatatablesCriteriasRepository a une fonction qui doivent être mises en œuvre séparément pour les différents référentiels.

J'ai donc créé le référentiel de mise en œuvre de la classe comme ça. Dans le impl paquet.

public class UserRepositoryImpl implements DatatablesCriteriasRepository<User> 

Veuillez noter que ceci est à mettre en œuvre les fonctions de DatatablesCriteriasRepository seulement. Je ne veux pas remplacer la valeur par défaut des fonctionnalités présentées dans CrudRepository par le cadre.

Mais Si je fais quelque chose comme cela, il convient plus dans le code de la conception, comme UserRepositoryImpl en fait met en œuvre UserRepository comme son nom l'indique.

public class UserRepositoryImpl implements UserRepository 

Mais encore une fois cela va me forcer à s'étendre à toutes les fonctions de la UserRepository interface. Comment puis-je résoudre ce problème par la façon une bonne conception de code?

Pouvez le UserRepositoryImpl a ce nom alors qu'il met en œuvre DatatablesCriteriasRepository?

  • Quelle est votre magasin de sauvegarde? De quoi avez-vous besoin que le défaut de mise en œuvre ne fournit pas?
  • docs.printemps.io/printemps-données/jpa/docs/1.7.2.De presse/de référence/...
  • Je vous remercie pour ça. Je fais donc dans le droit chemin je suis.:)
  • Je veux mettre en œuvre la recherche personnalisée pour le Pissenlit Datatables est DatatablesCriterias objet. Magasin de sauvegarde est MySQL DB.
  • Je ne comprends pas votre question. Votre première solution est la bonne, est conforme à la documentation de façon de faire, et fonctionne très bien. Pourquoi cherchez-vous une autre solution?
  • J'ai posté la question stackoverflow.com/questions/29457834/... et dans la réponse de la personne qui a répondu, il a mentionné que mon code n'est pas de la bonne façon. J'ai donc eu un doute sur mon code de la conception et posté cette question pour obtenir la bonne.
  • Le principal problème que j'ai eu est en ce qui concerne le nommage. peut UserRepositoryImpl a que le nom alors qu'il vraiment implémente DatatablesCriteriasRepository
  • Oui, il peut. Pourquoi ne pouvait-il pas? Tu fais comme dit la documentation, vous devriez, et il fonctionne. Vous devez faire confiance à la documentation officielle de plus qu'un hasard StackOverflow de l'utilisateur.
  • Je vous remercie pour ça. @JBNizet 🙂

InformationsquelleAutor Faraj Farook | 2015-04-06