J'ai un problème suivant. J'ai fait une application qui utilise spring-data et l'expose comme un service REST en utilisant spring-data-rest. Tout s'est bien passé jusqu'à ce que je veuille avoir une implémentation personnalisée. J'ai créé un CustomSomethingRepository et SomethingRepositoryImpl avec une méthode supplémentaire. L'interface de Spring Data Repository a étendu CustomSomethingRepository et tout allait bien, j'ai pu exécuter ma méthode directement depuis le test, l'implémentation personnalisée a été exécutée aussi. Puis j'ai essayé de l'obtenir via l'API REST et là, j'ai été surpris que cette méthode ne soit pas disponible via/somethings/search. Je suis presque sûr à cent pour cent que cela a bien fonctionné au printemps boot 1.3.x et JpaRepositories. Maintenant, j'utilise boot 1.5.x et MongoRepository. S'il vous plaît jeter un oeil à mon code exemple:Comment exposer l'implémentation personnalisée du point de terminaison Spring Data Rest
@RepositoryRestResource
public interface SomethingRepository extends CrudRepository<Something>, CustomSomethingRepository {
//this one is available in /search
@RestResource(exported = true)
List<Something> findByEmail(String email);
}
et une interface personnalisée
public interface CustomSomethingRepository {
//this one will not be available in /search which is my problem :(
List<Something> findBySomethingWhichIsNotAnAttribute();
}
et la mise en œuvre
@RepositoryRestResource
public class SomethingRepositoryImpl implements CustomSomethingRepository {
@Override
public List<Something> findBySomethingWhichIsNotAnAttribute() {
return new ArrayList<>(); //dummy code
}
}
Pourriez-vous s'il vous plaît me donner une idée comment puis-je exposer CustomSomethingImpl comme partie du point de terminaison de repos sans créer un autre haricot de mvc de ressort régulier qui traitera juste cette demande simple? J'ai lu des questions comme ceci: Implementing custom methods of Spring Data repository and exposing them through REST qui disent que ce n'est pas possible, mais croyez-moi ou non, j'ai eu un projet avec spring-boot 1.3.x et ces implémentations ont été exposées aussi :).
Merci!
Peut-être mon [Comment] (https://stackoverflow.com/q/45401734) sera utile .. – Cepr0
Salut, merci pour votre réponse, mais il ne pas exposer la mise en œuvre personnalisée, vous créez un autre contrôleur seulement ce qui est une solution de contournement, je dirais. Le problème est comment exposer automatiquement l'implémentation personnalisée qui est disponible à partir du niveau de données de printemps. –
Mon inattention ..)) – Cepr0