В нашем монолитном приложении, которое использовало JHIPSTER-6.10.5, мы использовали Spring-Data-Elastic Version: 3.3.1 с Elastic Search Version: 6.8.8. . У нас есть несколько отношений @ManyToOne
и @OneToMany
с более чем 100 объектами. В некоторых случаях максимум 7 объектов ссылаются друг на друга (я имею в виду взаимосвязанные, а не только от одного к другому). Для эластичного поиска мы использовали
- Чтобы игнорировать индексацию:
@JsonIgnoreProperities(value = { "unwanted fields" }, allowSetters = true)
и@JsonIgnore
там, где они не нужны. - Чтобы отобразить отношения: на
ManyToOne
мы используем@JsonBackReference
с соответствующим@JsonManagedReference
на соответствующих отношенияхOneToMany
.
Сейчас мы находимся в процессе перехода на Jhipster-7.0.1 и начали замечать следующие проблемы:
- Новая версия Spring-Data-Elastic: 4.1.6 с версией Elastic Search: 7.9.3
- Now with Spring data elastic, the Jackson based mapper is not available we are seeing multiple StackOverflow errors. Below is the migration change we did on the annotations:
- On the relationships we have added
@Field(type = FieldType.Nested, ignoreMalformed = true, ignoreFields = {"unwanted fields"})
. This stopped StackOverflow errors at Spring data level but still throw StackOverflow errors at elastic rest-client level internally. So, we are forced to use@Transient
to exclude all theOnetoMany
relations. - Даже в отношениях
ManyToOne
с вышеупомянутой аннотацией@Field
мы сталкиваемся с исключением elasticsearchException с превышением предела общего количества полей [1000] в индексе []. - Я попытался следовать документации по весенним данным, но не смог его разрешить.
- Мы также сохранили аннотации Json(Jackson), созданные Jhipster, но они не действуют.
- On the relationships we have added
На данный момент мы застопорились, так как не знаем, как решить эти проблемы; лично было очень удобно и хорошо задокументировано использование аннотаций Json; Мы, будучи новичками как в эластичном поиске, так и в эластичном поиске пружинных данных, начали использовать его только последние 8 месяцев назад, не в состоянии понять, как исправить эти ошибки. Пожалуйста, спросите, если я пропустил какую-либо необходимую информацию. Я поделюсь настолько, насколько это не нарушает политику организации.
Пример репозитория кода по запросу на gitter: https://gitlab.com/thelearner214/spring-data-es-sample
заранее спасибо