Есть ли простой способ, как контролировать наличие ассоциативных ссылок? Например, у меня есть две сущности / ресурсы:
class Car {
int internalState;
SteeringWhell b;
}
class SteeringWhell {
String highPerformanceDataRecipe;
}
У меня есть репозитории для обоих:
@RepositoryRestResource
@Transactional(readOnly = true)
public interface CarRepository extends PagingAndSortingRepository<Car, Long> {
}
@RepositoryRestResource
@Transactional(readOnly = true)
public interface SteeringWhellRepository extends PagingAndSortingRepository<SteeringWhell, Long> {
}
Таким образом, я вижу все операции CRUD для обоих репозиториев.
Моя бизнес-логика c нужна, чтобы показать ассоциативную ссылку только в представлении Car
(https://localhost/api/cars/1), только когда встречаются определенные бизнес-логики c (например, Car.internalState >= 42
). Т.е. скрыть ссылку "https://localhost/api/cars/1/steeringWhell" в "_links" для Car
в таком сценарии.
Возможно ли без повторной реализации всех операций CRUD для SteeringWhell
самостоятельно?
PS: я пытался реализовать бин RepresentationModelProcessor<EntityModel<Car>>
, но я могу только добавлять туда ссылки. Удаление можно сделать, но ссылки на B там нет. Добавляется позже к весне.