У меня есть следующий проект mvc spring, который используется для выполнения операции CRUD над документами solr, я смог успешно создавать, читать, обновлять и удалять, но когда я добавил некоторые дочерние документы, все стало немного грязно, например, когдаЯ сохраняю новый документ в формате json, он сохраняется, но когда я запрашиваю его, дочерние документы возвращаются отдельно, и в основном документе он говорит, что он нулевой.
Вот что я пытаюсь сделать:
Основной документ:
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@SolrDocument(collection = "movie")
public class Movie {
@Id
private long id;
@Indexed
private String title;
@Indexed
private List<Long> genreId;
@Indexed
private List<Genre> genre;
@Indexed(required = true, stored = true)
@ChildDocument
private List<Person> director;
@Indexed
private Date releaseDate;
@Indexed(required = true, stored = true)
@ChildDocument
private List<Person> distributor;
@Indexed
private MovieLanguage language;
@Indexed(required = true, stored = true)
@ChildDocument
private List<Person> actor;
@Indexed(required = true, stored = true)
@ChildDocument
private List<Person> creator;
@Indexed
private long duration;
}
Дочерний документ:
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Person implements Serializable {
@Id
private int id;
@Indexed
private String firstName;
@Indexed
private String lastName;
@Indexed
@ChildDocument
private List<Role> role;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Role implements Serializable {
@Id
private int id;
@Indexed
private String name;
}
И остальные весенние классы (репозиторий, сервис и контроль) без каких-либо деловых операций, кроме по умолчанию.
вот мой запрос:
{
"id": 1,
"title": "movie",
"genreId": [
1,
3,
4
],
"genre": [
"Comedy",
"Drama"
],
"director": [
{
"id": 9,
"firstName": "aaa",
"lastName": "aaddd",
"role": [
{
"id": 2,
"name": "director"
}
]
}
],
"releaseDate": "2006-11-30T00:00:00.000+0000",
"distributor": [
{
"id": 3,
"firstName": "aaa",
"lastName": "aaddd",
"role": [
{
"id": 4,
"name": "DISTRIBUTOR"
}
]
}
],
"language": "Arabic",
"actor": [
{
"id": 5,
"firstName": "aaa",
"lastName": "aaddd",
"role": [
{
"id": 6,
"name": "Actor"
}
]
}
],
"creator": [
{
"id": 7,
"firstName": "aaa",
"lastName": "aaddd",
"role": [
{
"id": 8,
"name": "Creator"
}
]
}
],
"duration": 1200
}
А вот ответ всех сотрудников:
{
"content": [
{
"id": 1,
"title": "movie",
"genreId": [
1,
3,
4
],
"genre": [
"Comedy",
"Drama"
],
"director": null,
"releaseDate": "2006-11-30T00:00:00.000+0000",
"distributor": null,
"language": "Arabic",
"actor": null,
"creator": null,
"duration": 1200
},
{
"id": 2,
"title": null,
"genreId": null,
"genre": null,
"director": null,
"releaseDate": null,
"distributor": null,
"language": null,
"actor": null,
"creator": null,
"duration": 0
},
{
"id": 9,
"title": null,
"genreId": null,
"genre": null,
"director": null,
"releaseDate": null,
"distributor": null,
"language": null,
"actor": null,
"creator": null,
"duration": 0
},
{
"id": 4,
"title": null,
"genreId": null,
"genre": null,
"director": null,
"releaseDate": null,
"distributor": null,
"language": null,
"actor": null,
"creator": null,
"duration": 0
},
{
"id": 3,
"title": null,
"genreId": null,
"genre": null,
"director": null,
"releaseDate": null,
"distributor": null,
"language": null,
"actor": null,
"creator": null,
"duration": 0
},
{
"id": 6,
"title": null,
"genreId": null,
"genre": null,
"director": null,
"releaseDate": null,
"distributor": null,
"language": null,
"actor": null,
"creator": null,
"duration": 0
},
{
"id": 5,
"title": null,
"genreId": null,
"genre": null,
"director": null,
"releaseDate": null,
"distributor": null,
"language": null,
"actor": null,
"creator": null,
"duration": 0
},
{
"id": 8,
"title": null,
"genreId": null,
"genre": null,
"director": null,
"releaseDate": null,
"distributor": null,
"language": null,
"actor": null,
"creator": null,
"duration": 0
},
{
"id": 7,
"title": null,
"genreId": null,
"genre": null,
"director": null,
"releaseDate": null,
"distributor": null,
"language": null,
"actor": null,
"creator": null,
"duration": 0
},
{
"id": 1,
"title": "movie",
"genreId": [
1,
3,
4
],
"genre": [
"Comedy",
"Drama"
],
"director": null,
"releaseDate": "2006-11-30T00:00:00.000+0000",
"distributor": null,
"language": "Arabic",
"actor": null,
"creator": null,
"duration": 1200
}
],
"pageable": {
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"offset": 0,
"pageSize": 10,
"pageNumber": 0,
"paged": true,
"unpaged": false
},
"facetResultPages": [],
"facetQueryResult": {
"content": [],
"pageable": "INSTANCE",
"last": true,
"totalPages": 1,
"totalElements": 0,
"size": 0,
"number": 0,
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"numberOfElements": 0,
"first": true,
"empty": true
},
"highlighted": [],
"maxScore": null,
"fieldStatsResults": {},
"suggestions": [],
"facetFields": [],
"allFacets": [
null
],
"alternatives": [],
"facetPivotFields": [],
"totalPages": 1,
"totalElements": 10,
"size": 10,
"number": 0,
"sort": {
"sorted": false,
"unsorted": true,
"empty": true
},
"numberOfElements": 10,
"first": true,
"last": true,
"empty": false
}
Может кто-нибудь объяснить, почему существует несколько нулевых данных и почемуактер, режиссер, создатель и распределенные поля в моем документе равны нулю?