Я делаю простое приложение CRUD, используя Spring boot и MongoDB, проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как определять классы модели.
Мое приложение должно быть таким:
Сайт имеет некоторые характеристики, такие как идентификатор, регион, город и т. д., И состоит из 4 частей (ячеек), каждая из которых имеет свои характеристики. Любая помощь будет оценена по достоинству.
Вот что у меня есть на данный момент:
public class Site {
@Id
String siteId;
String projectPhase;
String region;
String city;
String siteName;
String newSiteName;
String clusterName ;
String longitude ;
String lattitude ;
@OneToMany(mappedBy = "siteId")
List L;
Я хочу знать, как мне связать другой класс внутри этого.




Аннотации, такие как @OneToMany, обычно используются в контексте JPA и не нужны при использовании Spring Data MongoDB. Об этом также упоминает документация:
There’s no need to use something like
@OneToManybecause the mapping framework sees that you want a one-to-many relationship because there is aListof objects.
У вас есть несколько вариантов, когда вы хотите определить отношения «один ко многим» при использовании MongoDB. Первый из них - определить их как встроенные объекты в одном документе:
@Document
public class Site {
@Id
private String id;
private String city;
private String region;
private List<Part> cellulars;
}
public class Part {
private String characteristic1;
private String characteristic2;
}
Это означает, что части не существуют сами по себе, поэтому им также не нужен собственный идентификатор.
Другая возможность - ссылка на другой документ:
@Document
public class Site {
@Id
private String id;
private String city;
private String region;
@DBRef
private List<Part> cellulars;
}
@Document
public class Part {
@Id
private String id;
private String characteristic1;
private String characteristic2;
}
В этом случае части также являются отдельными документами, а сайт просто содержит ссылку на часть.
Большое спасибо за ваш ответ, это очень полезно.
Вопрос, похоже, касается ORM / JPA (используется Spring Boot), а не машинописного текста, монго или angular5. Также неясно, что вы пробовали и с каким еще классом хотите ассоциировать. Предоставьте более подробную информацию о вашей конкретной проблеме; поскольку вопрос стоит, на него нельзя ответить.