Repositorys sind im Frühjahr Daten Rest mit der Repositories Klasse aufgelöst.
Die Klasse "Repositories" enthält eine Hilfsmethode (getRepositoryFor(Class<?>)
) zum Suchen des Repositorys für eine bestimmte Klasse.
Sie können das folgende Snippet für ein Repository für eine bestimmte Klasse in Ihrem Interceptor finden:
Repositories repositories = new Repositories(appContext);
repositories.getRepositoryFor(entityObject.getClass());
Eine elegantere Lösung wäre Vorteil des eingebauten Feder-data-Rest-Repository-Lookup zu nehmen Implementierung mit einem benutzerdefinierten Controller (RootResourceInformationHandlerMethodArgumentResolver)
Dazu müssen Sie nur einen RootResourceInformation
-Parameter zu einer RepositoryRestController-Endpunktmethode hinzufügen.
@RepositoryRestController
@RequestMapping("/customName")
public class RepositoryExportController {
@Autowired
private ApplicationContext appContext;
@RequestMapping(method = RequestMethod.GET, value = "{repository}",
produces = MediaTypes.HAL_JSON_VALUE)
@ResponseBody
public Resources<Resource<?>> export(RootResourceInformation resourceInformation, ...) {
Repositories repositories = new Repositories(appContext);
CrudRepository repo=(CrudRepository)repositories.getRepositoryFor(resourceInformation.getDomainType());
repo.findAll();
...other logic....
}
Große Antwort! Dies erlaubte mir, eine geeignete Controller-Methode für Spring-Security-acl als Sub-Ressource zu implementieren. – mbonato