У меня возникают некоторые проблемы с MongoRepository, когда я пытаюсь выполнить публикацию в сервисе FlightClass.
Итак, у меня есть класс Catering
@NoArgsConstructor @Getter @Setter @ToString
@Document(collection = "catering")
public class Catering {
@Id
private String id;
@Indexed(unique = true)
private String title;
public Catering(String title) {
this.title = title;
}
}
и еще один класс FlightClass
.
@NoArgsConstructor @Getter @Setter @ToString
@Document(collection = "flight-class")
public class FlightClass {
@Id
private String id;
private String title;
@DBRef
private Catering catering;
}
Я объявил свой репозиторий следующим образом:
@RepositoryRestResource(collectionResourceRel = "classes", path = "classes")
public interface FlightClassRepository extends
MongoRepository<FlightClass, String> {
}
Но у меня возникает проблема, когда я пытаюсь сделать POST
{
"title": "Classic",
"catering": {
"id": <some_id_that_already_exists>
}
}
И по какой-то причине данные пружин не связывают текущую запись с обслуживающей.
Самое странное, что я создал контроллер, подобный приведенному ниже, и он работает.
@PostMapping("/flight-classes")
public ResponseEntity<FlightClass> post(@RequestBody FlightClass flightClass) {
return new ResponseEntity<>(flightClassRepository.insert(flightClass), HttpStatus.ACCEPTED);
}
Это ошибка в репозитории Mongo? Или я что-то не так делаю?
Это мои зависимости
...
dependencies {
implementation('org.springframework.boot:spring-boot-starter-aop')
implementation('org.springframework.boot:spring-boot-starter-data-mongodb')
implementation('org.springframework.boot:spring-boot-starter-data-rest')
implementation('org.springframework.boot:spring-boot-starter-hateoas')
implementation('org.springframework.boot:spring-boot-starter-web')
runtimeOnly('org.springframework.boot:spring-boot-devtools')
compileOnly('org.projectlombok:lombok')
}
Кто-то имеет представление о том, почему это происходит?
Я хотел бы просто уточнить, что я не пытаюсь делать сохранение в каскаде (я знаю, что это еще не поддерживается платформой). Я уже создал экземпляр питания. Я просто надеялся связать это с классом